在WPF中的窗口datacontext中排序

时间:2009-08-09 08:27:02

标签: wpf data-binding wpf-controls datacontext

this one有关的另一个问题。

我的List<SortableObjects>是我的MainWindow的DataContext。我使用该列表填充ListBoxComboBox。当我对项目进行排序时,ComboBoxListView都会更新。但现在我需要以ComboBox以不同的方式对ListView进行排序。 I. E.如果对象是人,在ComboBox,我需要按LastName排序,但在ListView生日。我怎样才能做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:2)

对所需的每个单独订单使用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}}"/>