我有一个数据网格,我正在以编程方式构建内容,因为列将根据对象的复杂集合属性进行更改。 有问题的对象有2个标准属性。
public class MyObject
{
private List<MyNameValuePairProps> props = new List<MyNameValuePairProps>();
public int Id { get; set; }
public string Name { get; set; }
public List<MyNameValuePairProps> Props
{
get { return props; }
set { props = value; }
}
}
以编程方式我每个属性都添加DataGridTextColumns,如下所示:
DataGridTextColumn colId = new DataGridTextColumn();
colId.Header = "Id";
colId.Binding = new Binding("Id");
myDataGrid.Columns.Add(colId);
DataGridTextColumn colName = new DataGridTextColumn();
colName.Header = "Name";
colName.Binding = new Binding("Name");
myDataGrid.Columns.Add(colName);
在设置列之后,当我调用它时,如何以编程方式在我的对象AND databind的“Props”列表属性中为每个“MyNameValuePairProp”添加一列:
myDataGrid.ItemsSource = myCollOfMyObjects;
答案 0 :(得分:1)
您可以简单地在绑定上设置源(如下所示)
foreach(MyNameValuePairProps pair in Props)
{
DataGridTextColumn column = x;// create column as you will
column.Binding = new Binding("Value") { Source = pair};
myDataGrid.Columns.Add(column);
}