У меня есть ObservableCollection элементов, которые я хочу представить одновременно в двух элементах управления: один для редактирования свойств для текущего выделения и добавления и удаления элементов, а другой для отображения всей коллекции с выделенным текущим выделением.
С этой целью я создаю CollectionViewSource, который привязывается к моим элементам, и привязывается к этому в моих элементах управления:
<UserControl>
<UserControl.Resources>
<CollectionViewSource x:Key="MyCollectionViewSource" Source="{Binding MyItems}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="MyProperty" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</UserControl.Resources>
<Grid>
<my:PropertiesControl TheItems="{Binding Source={StaticResource MyCollectionViewSource}}" >
<my:DisplayControl TheItems="{Binding Source={StaticResource MyCollectionViewSource}}" >
</Grid>
</UserControl>
Проблема в том, что в DisplayControl я хочу расположить элементы особым образом, который можетне указывается в XAML: размещение элемента зависит не только от его собственных свойств, но и от свойств других элементов в коллекции.Таким образом, мне нужно выполнить некоторый код изменения местоположения всякий раз, когда элементы добавляются или удаляются из коллекции, или когда изменяются свойства одного из элементов в коллекции.
Мне было интересно, каков рекомендуемый способ сделать это?Вдохновленный ItemsControl.ItemsSource Я думал о том, чтобы сделать свойства TheItems типа IEnumerable, но мне сложно понять, как действовать.
Любой вклад будет оценен!