2011-06-07 82 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

相關問題