Сортировка в окне текстовых данных в WPF - PullRequest
1 голос
/ 09 августа 2009

Еще один вопрос, связанный с этим .

У меня есть List<SortableObjects>, то есть DataContext моего главного окна. Я использую этот список для заполнения ListBox и ComboBox. Когда я сортирую элементы, и ComboBox, и ListView обновляются. Но теперь мне нужно, чтобы ComboBox был отсортирован иначе, чем ListView. I. E. Если бы объект был Person, в ComboBox, мне нужно было бы отсортировать их по LastName, но по ListView, по дню рождения. Как мне этого добиться?

Спасибо!

1 Ответ

2 голосов
/ 09 августа 2009

Используйте CollectionViewSource с для каждого отдельного заказа, который вы хотите:

<UserControl.Resources>
    <CollectionViewSource x:Key="ComboBoxSource" Source="{Binding YourUnderlyingCollection}">
        <CollectionViewSource.SortDescriptions>
            <scm:SortDescription PropertyName="SomeProperty"/>
        </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>

    <CollectionViewSource x:Key="ListBoxSource" Source="{Binding YourUnderlyingCollection}">
        <CollectionViewSource.SortDescriptions>
            <scm:SortDescription PropertyName="SomeOtherProperty"/>
        </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>
</UserControl.Resources>

<ComboBox ItemsSource="{Binding Source={StaticResource ComboBoxSource}}"/>

<ListBox ItemsSource="{Binding Source={StaticResource ListBoxSource}}"/>
...