gpt4 book ai didi

wpf - 如何仅使用 XAML 而不使用隐藏代码对 ListBox 进行排序?

转载 作者:行者123 更新时间:2023-12-03 07:30:47 24 4
gpt4 key购买 nike

我需要对 ListBox 中的字符串进行排序,但它由另一个组件通过 DataContext 绑定(bind)到 View 模型。因此我无法直接在 XAML 中实例化 View 模型,如 this example 所示。 ,它使用 ObjectDataProvider

在我的 XAML 中:

<ListBox ItemsSource="{Binding CollectionOfStrings}" />

在我的 View 模型中:

public ObservableCollection<string> CollectionOfStrings
{
get { return collectionOfStrings; }
}

在另一个组件中:

view.DataContext = new ViewModel();

后面没有代码!那么,使用纯 XAML,我将如何对 ListBox 中的项目进行排序?同样,XAML 不拥有 View 模型的实例化。

最佳答案

使用 CollectionViewSource :

<CollectionViewSource x:Key="SortedItems" Source="{Binding CollectionOfStrings}"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=Win‌​dowsBase">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="SomePropertyOnYourItems"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>

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

您可能希望将字符串包装在自定义 VM 类中,以便可以更轻松地应用排序行为。

关于wpf - 如何仅使用 XAML 而不使用隐藏代码对 ListBox 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com