2009-05-27 95 views
8

我正在使用工具包:CodePlex中的DataGrid。如何在代码中设置DataGridTextColumn的绑定?

我在代码中生成列。

如何在代码中设置相当于{Binding FirstName}

或者,我怎样才能设置值,这就是我需要做的,不一定绑定它。我只想从我的模型属性中的数据网格单元格中的值。

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

关于新绑定对我来说是正确的第一个答案了。 。使用该回答的主要问题是,绑定属于四个命名空间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");