Вместо этого вы можете использовать x: Reference.

аюсь реализовать сортировку комбинированного списка с помощью 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, но IMHO, который нарушает принцип DRY).

Ответы на вопрос(4)

Ваш ответ на вопрос