我有一个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}"/>
我怎样才能做到这一点?
答案 0 :(得分:1)
<DataGridTextColumn Header="Subitem" Binding="{Binding Sublist[0].Subitem, UpdateSourceTrigger=PropertyChanged}"/>
应该有用,但是..
1)可能需要将您的Subitem转换为DependencyProperty或至少在MySubClass中实现INotifyPropertyChanged(请参阅http://msdn.microsoft.com/en-us/library/ms743695.aspx)。
2)如果索引0处的项目被删除(或更改;不确定,如果ObservableCollection负责处理),则可以松开绑定。您应该绑定到始终存在的属性。