1

与此相关的另一个问题。

我有一个List<SortableObjects>就是DataContext我的 MainWindow。我使用该列表来填充 aListBox和 a ComboBox。当我对项目进行排序时, theComboBox和 theListView都可以更新。但现在我需要ComboBox以不同于ListView. IE 如果对象是 Person,在 中ComboBox,我需要按 LastName 对它们进行排序,但在 中ListView,按生日对它们进行排序。我怎样才能做到这一点?

谢谢!

4

1 回答 1

2

CollectionViewSources 用于您想要的每个单独的排序:

<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}}"/>
于 2009-08-09T09:26:06.127 回答