WPF动态排序

本文关键字:排序 动态 WPF | 更新日期: 2023-09-27 18:04:54

我有一个模型,其中一个属性是Order是int类型。模型被放在ObservableCollection中,例如 modelist 被绑定到一个列表框。

使用此代码

<CollectionViewSource Source="{StaticResource ModelList}" x:Key="SortedItems">
  <CollectionViewSource.SortDescriptions>
    <scm:SortDescription PropertyName="Order"/>
  </CollectionViewSource.SortDescriptions>
</CollectionViewSource>

然后使用

将此列表绑定到列表框
<ListView ItemsSource="{Binding Source={StaticResource SortedItems}}" />

工作的罚款。但是我想通过它的order属性来改变列表的顺序,也就是说,当我通过代码改变order时,我想让列表框反映这个变化。

WPF动态排序

为了使用CollectionViewSource,您需要更新sortdescription属性

要从代码中访问CollectionViewSource,请在视图模型中声明它并绑定它(而不是在XAML中声明它)。对于可视化树中的项,您可以使用x:Name,尽管这似乎不适用于Resources标记,至少通过初始测试