Привязать Xaml DataGrid к первому элементу в подмассиве - PullRequest
1 голос
/ 26 марта 2012

У меня есть 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 Ответ

1 голос
/ 26 марта 2012
<DataGridTextColumn Header="Subitem" Binding="{Binding Sublist[0].Subitem, UpdateSourceTrigger=PropertyChanged}"/>

должно работать, но ..

1) Может потребоваться преобразовать ваш подэлемент в DependencyProperty или хотя бы реализовать INotifyPropertyChanged в MySubClass (см. http://msdn.microsoft.com/en-us/library/ms743695.aspx)

2) Вы можете потерять привязку, если элемент с индексом 0 удален (или изменен; не уверен, если ObservableCollection позаботится об этом).Вы должны привязать к свойствам, которые всегда существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...