在 WPF 中的窗口数据上下文中排序

发布于 2024-07-30 21:00:14 字数 521 浏览 10 评论 0原文

另一个与这个相关的问题。

我有一个 List ,它是我的 MainWindow 的 DataContext 。 我使用该列表来填充 ListBoxComboBox。 当我对项目进行排序时,ComboBoxListView 都会得到更新。 但现在我需要以与 ListView 不同的方式对 ComboBox 进行排序。 IE 如果对象是一个人,在 ComboBox 中,我需要按 LastName 对它们进行排序,但在 ListView 中,则按生日排序。 我怎样才能实现这个目标?

谢谢!

Another question related to this one.

I have a List<SortableObjects> that is the DataContext of my MainWindow. I use that list to populate a ListBox and a ComboBox. When I sort the items, both the ComboBox and the ListView get updated all right. But now I need the ComboBox to be sorted in a different way than the ListView. I. E. If the object were a Person, in the ComboBox, I'd need to sort them by LastName, but in the ListView, by birthday. How can I achieve this?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

筑梦 2024-08-06 21:00:16

使用 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}}"/>

Use CollectionViewSources for each of the separate orderings you want:

<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}}"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文