C# 按默认列对ListView排序
我有一个xaml listview,其中包含一个可观察集合的项源,该集合的有效负载为“Person”对象。如果在集合中添加或删除项,是否有方法使listview按列进行默认排序?因此,假设Person对象具有“Age”属性。添加或删除项目时,如何让listview按年龄自动排序?我一直在寻找解决方案,但没有找到。仅在addItem和removeItem函数上,在末尾添加以下内容:C# 按默认列对ListView排序,c#,wpf,xaml,C#,Wpf,Xaml,我有一个xaml listview,其中包含一个可观察集合的项源,该集合的有效负载为“Person”对象。如果在集合中添加或删除项,是否有方法使listview按列进行默认排序?因此,假设Person对象具有“Age”属性。添加或删除项目时,如何让listview按年龄自动排序?我一直在寻找解决方案,但没有找到。仅在addItem和removeItem函数上,在末尾添加以下内容: SortDescription mySort = new SortDescription(Age, ListSort
SortDescription mySort = new SortDescription(Age, ListSortDirection.Ascending);
this.ListView1.Items.SortDescriptions.Clear();
this.ListView1.Items.SortDescriptions.Add(mySort);
这将在“Age”属性上添加排序。这确实很有帮助。我在资源标签的xaml中使用了“排序描述”,它工作得非常好。非常干净的解决方案。@nikotromus我也通过仅使用XAML的解决方案进行了尝试,但它对我无效-我可以请您通过单独的回答提供您的解决方案作为示例吗?:)无需在每个添加项处重新应用
SortDescription
,因为它会自动用于新添加的项。显然,在项目移除时,不必诉诸任何手段。但是,如果只有项目的属性发生更改,则必须重新应用sortddescription
,以便对更新的值应用排序!