Я пытаюсь реализовать сортировку комбинированного списка с использованием CollectionViewSource. Это поле со списком фактически является частью шаблона данных и повторяется в виде списка. Мой первый подход, похоже, сработал (с использованием CollectionViewSource), но все мои поля со списком имели один и тот же контекст данных. Это делало так, что всякий раз, когда один из других блоков был изменен, все другие менялись, чтобы отражать - не желаемый побочный эффект.
Я решил просто отступить и попытаться реализовать базовое поле со списком (не внутри шаблона данных), используя встроенный xaml для указания CollectionViewSource (в отличие от создания cvs как статического ресурса). Я не смог успешно получить данные для отображения. Я, вероятно, ошибаюсь, поскольку я все еще новичок в WPF.
Вот xaml для моего поля со списком:
<ComboBox>
<ComboBox.ItemsSource>
<Binding>
<Binding.Source>
<CollectionViewSource Source="{Binding Path=Configurations}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="AgencyName" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Binding.Source>
</Binding>
</ComboBox.ItemsSource>
</ComboBox>
DataContext пользовательского элемента управления, в котором находится это поле со списком, привязан к объекту, у которого есть ObservableCollection, называемая Configurations, и каждая конфигурация имеет свойство с именем AgencyName. Я проверил, что это работает нормально, используя стандартное связывание без cvs, поэтому я знаю, что с этим все нормально.
Любая помощь будет принята с благодарностью, поскольку у меня закончились оправдания моему боссу :). Я также не хочу опускаться в код и выполнять сортировку в коде (что я мог, когда собирал ObservableCollection, но ИМХО, что нарушает принцип СУХОГО).