如何在代码中设置DataGridTextColumn的绑定?

时间:2009-05-27 15:36:55

标签: c# wpf datagrid

我正在使用工具包:来自CodePlex的DataGrid。

我正在代码中生成列。

如何在代码中设置等效的 {Binding FirstName}

或者,我怎样才能设置值,这就是我需要做的全部,不一定是绑定它。我只想在datagrid的单元格中获取我的model属性的值。

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

3 个答案:

答案 0 :(得分:20)

未经测试,但以下情况应该有效:

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

答案 1 :(得分:6)

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

答案 2 :(得分:2)

示例:

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