2011-06-07 58 views
0

我以编程方式填充数据网格,但在设置itemsource之前,我还以编程方式添加了datagrid列。以编程方式将silverlight数据绑定列出属性?

DataGridTextColumn col = new DataGridTextColumn(); 
col.Header = "MyCol"; 
col.Binding = new Binding("PropertyOFObject"); 
dataGrid.Columns.Add(col); 

很容易设置的结合是混凝土 但是我的对象的属性,因为这个对象的属性,我还有一个对象类型的列表。 现在,对于列表中第二个对象类型的每个实例,我希望将另一列添加到我的网格中,并填充第二个对象类型的该实例的特定属性。

我将如何去做这个以同样的方式编程添加列和设置绑定?

+0

我有一个网格。 我有一个对象“A”。 A有属性,其中之一是“列表”属性。 此列表属性是对象“B”的实例列表。 对于每个属性,我以编程方式在我的网格中添加并绑定一列。 我想对对象“A”的列表属性中的对象“B”的每个实例做同样的事情。 这些列将被添加到相同的网格。 – 2011-06-07 21:00:09

回答

1

如果要将子属性的项绑定到列,您可以创建一个创建动态绑定的foreach循环,在我给出的一个WPF问题an example for arrays中应该是非常相似的。

的关键是在列表上,并与注射索引创建属性路径的长度使用for -loop:

new Binding("Property[" + i + "]") 
+0

事情是,我正在通过对象“A”的集合为每个“做”。他们在其列表属性中可能有也可能没有任何对象“B”的实例。它可能是空的。所以我确实有一个“模式”,如果他们在该列表中有实例,那么我总是想要绑定的那个实例的属性被命名为“Value”。当我以编程方式创建它时,我只是没有绑定的“源”。 – 2011-06-07 21:18:41

+0

您需要查询具有最长列表的实例的项目,然后您知道需要多少列,如果您对某些单元格中的绑定会失败,那么您不应该尝试使用像数据网格这样的二次结构锯齿状数据。 – 2011-06-07 21:21:05

+0

矩形*结构,我说什么... – 2011-06-07 21:30:06

相关问题