2009-05-27 14 views
8

私はツールキットを使用しています:CodePlexのDataGrid。DataGridTextColumnのバインドをコードで設定するにはどうすればよいですか?

私はコードで列を生成しています。

{バインディングファーストネーム}をコードに設定するにはどうすればよいですか?

また、の値をに設定するだけでどうしたらいいですか、必ずしもバインドする必要はありません。私はちょうどDataGridのセル内の私のモデルプロパティからの値が必要です。

DataGridTextColumn dgtc = new DataGridTextColumn(); 
dgtc.Header = smartFormField.Label; 
dgtc.Binding = BindingBase.Path = "FirstName"; //PSEUDO-CODE 
dgtc.CellValue= "Jim"; //PSEUDO-CODE 
CodePlexDataGrid.Columns.Add(dgtc); 

答えて

18

テストされていないが、次のように動作するはずです:

dgtc.Binding = new Binding("FirstName"); 
2

例:新しいバインディングについて

DataGridTextColumn dataColumn = new DataGridTextColumn(); 
dataColumn.Header = "HeaderName"; 
dataColumn.Binding = new Binding("HeaderBind"); 
dataGrid.Columns.Add(dataColumn); 
5

最初の答えは、あまりにも、私のために正しいです。その答えを使用する主な問題は、バインディングは、4つの名前空間8-(に属しているということであった正しい名前空間がSystem.Windows.Data(.NET 4、VS2010)であるこれは、より完全な答えにつながる:。。

dgtc.Binding = new System.Windows.Data.Binding("FirstName"); 

補足説明:

私の場合、バインディングを設定するコンテキストは、DataGridの列に対する反復でした。バインディングを変更する前に、基本クラスDataGridColumnをDataGridTextColumnにキャストする必要があります。バインディングを変更することが可能:

int pos = 0; 
var dgtc = dataGrid.Columns[pos] as DataGridTextColumn; 
dgtc.Binding = new System.Windows.Data.Binding("FirstName"); 
関連する問題