2011-05-10 77 views
0

我有一個datagrid,我正在編程的內容,因爲列將根據對象的複雜集合屬性而更改。 有問題的對象有2個標準屬性。Silverlight網格編程「複雜屬性」數據綁定?

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); 

我怎麼會去編程,我對象的「道具」列表屬性向每「MyNameValuePairProp」一列,數據綁定到,當我把這個後,我成立了列:

myDataGrid.ItemsSource = myCollOfMyObjects; 

回答

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); 
}