Сортировка в контексте данных окна в WPF

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

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

Спасибо!


person Carlo    schedule 09.08.2009    source источник


Ответы (1)


Используйте 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}}"/>
person Kent Boogaart    schedule 09.08.2009