2012-03-26 25 views
1

我有一個綁定到對象數組的DataGrid。 這些對象包含一些屬性和項目的另一個數組,像這樣:將Xaml DataGrid綁定到子數組中的第一項

public class MySubClass 
{ 
    public String SubItem {get;set;} 
} 

public class MyContrievedSampleCollection 
{ 
    public String Name {get;set;} 
    public ObservableCollection<MySubClass> Sublist {get; set;} 
} 

所以我的DataGrid綁定到一個ObservableCollection,這很好地工作:

<DataGrid ItemsSource="{Binding MyCollection}"> 
    <DataGrid.Columns> 
    <DataGridTextColumn Header="Name" Binding="{Binding Name, UpdateSourceTrigger=PropertyChanged}"/> 
    </DataGrid.Columns> 
</DataGrid> 

現在我想補充另一列其中綁定到子列表的第一項中的屬性:

<DataGridTextColumn Header="Subitem" Binding="{Binding Sublist[0].Subitem, UpdateSourceTrigger=PropertyChanged}"/> 

我該如何實現這一目標?

回答

1
<DataGridTextColumn Header="Subitem" Binding="{Binding Sublist[0].Subitem, UpdateSourceTrigger=PropertyChanged}"/> 

應該工作,但..

1)它可能需要您的子項轉換成的DependencyProperty或MySubClass至少執行INotifyPropertyChanged(見http://msdn.microsoft.com/en-us/library/ms743695.aspx爲該)。

2)如果索引0處的項目被刪除(或更改;不確定,如果ObservableCollection負責),則可以放棄綁定。您應該綁定到始終存在的屬性。

+0

Oh dang。所以我的問題在別的地方:/ – Sam 2012-03-27 08:23:28