首先让我说我对编码非常陌生,所以我的知识有很大差距......任何人:
对,我试图在单击按钮时对 WPF 列表框进行排序,最好是在纯 xaml 中(否则 VB)。我很难看到大多数示例都是用 C# 编写的。这是我的代码:
<Grid.Resources>
<CollectionViewSource x:Key="myCollectionView"
Source="{Binding Path=Query4, Source={x:Static Application.Current}}" >
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="ContactID"
Direction="Descending"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Grid.Resources>
<ListBox x:Name="ContDefault"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Source={StaticResource myCollectionView}}"
ItemTemplate="{StaticResource ContactsList}" />
现在,我想做的是添加一个按钮,如下所示:
<Button x:Name="SortNameAsc"
Content="Sort By Name"
Visibility="Visible">
现在,当单击此按钮时,我希望列表框按“名字”字段进行排序,我想我必须以某种方式更改排序描述,所以有人可以告诉我怎么做吗?还是我要走这条旧路。再次最好是在 XAML 中,但如果需要在 VB 中,您可以尝试保持简单吗?
谢谢大家
最佳答案
希望有帮助: Google 想出了这个( http://www.kudzuworld.com/blogs/Tech/20070815A.en.aspx )
ListCollectionView view = new ListCollectionView(channel.Members);
view.SortDescriptions.Add(new System.ComponentModel.SortDescription("lastName",
System.ComponentModel.ListSortDirection.Ascending);
view.SortDescriptions.Add(new System.ComponentModel.SortDescription("firstName",
System.ComponentModel.ListSortDirection.Ascending);
view.CustomSort = new IComprarerImplementation; //Do this if you want a custom sort;
view.Refresh();
关于示例 3,这应该是正确的:
<ListBox x:Name="ContDefault"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Source={StaticResource myCollectionView}}"
ItemTemplate="{StaticResource ContactsList}"
SortDescription="First Name" />
关于wpf - 单击按钮时对 WPF 列表框进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/739988/