【问题标题】:Bind Xaml DataGrid to first item in sub-array将 Xaml DataGrid 绑定到子数组中的第一项
【发布时间】:2012-04-09 19:29:41
【问题描述】:

我有一个绑定到对象数组的 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}"/>

我怎样才能做到这一点?

【问题讨论】:

    标签: xaml binding datagrid


    【解决方案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 负责),您可以松开绑定。您应该绑定到始终存在的属性。

    【讨论】:

    • 天哪。所以我的问题在其他地方:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多