Silverlight 网格编程“复杂属性”数据绑定

本文关键字:复杂属性 数据绑定 属性 复杂 网格 编程 Silverlight | 更新日期: 2023-09-27 17:55:46

我有一个数据网格,我正在以编程方式构建其内容,因为列将根据对象的复杂集合属性而变化。有问题的对象有 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);
当我

在设置列后调用它时,我将如何以编程方式在我的对象的"Props"列表属性中为每个"MyNameValuePairProp"添加一个列,并将数据绑定到该列:

myDataGrid.ItemsSource = myCollOfMyObjects;

Silverlight 网格编程“复杂属性”数据绑定

您可以简单地在绑定上设置源(如下所示)

foreach(MyNameValuePairProps pair in Props)
{
    DataGridTextColumn column = x;// create column as you will
    column.Binding = new Binding("Value") { Source = pair};
    myDataGrid.Columns.Add(column);
}