【发布时间】:2016-04-15 16:54:51
【问题描述】:
在 UWP 应用中,我可以将 CollectionViewSource 的源设置为列表,它会立即将其分组。使用 WPF,它的工作方式似乎有所不同。我希望能够在后面的代码中对我的列表进行分组,然后将其提供给集合,而不是 listview 使用 PropertyGroupDescription 为我做这件事。
public class MyGroup : ObservableCollection<MyClass>
{
public int ID{ get; set; }
public MyGroup (IEnumerable<MyClass> items) : base(items)
{
ID= items.First().ID;
}
}
//other code
collectionViewSource.Source = myGroup;
然后我只是将collectionViewSource 绑定到ItemSource。如何在 WPF 中做这样的事情?
【问题讨论】:
-
你的 WPF 意思是 XAML?
-
他们都使用 XAML。我正在尝试将 Windows 应用程序移植到 WPF 应用程序。列表视图中的分组在 WPF 中的工作方式略有不同。
-
您想对可观察集合的列表项进行排序,然后在对它们进行排序后,您想将列表视图 (xaml) 绑定到您的集合?您的收藏中的所有项目都应该对用户可见吗? @shady
-
是的。假设一个列表包含 id 为 13、14、13、15 的对象。使用 GroupBy,将有 3 个组。如果您曾经看过 UWP 组,您只需将源设置为由 GroupBy 生成的组列表,并将其设置为 collectionviewsource 的 sourcec3。然后将其设置为 listview itemsource。它会自动将它们分组到列表中。
-
你能发布一些你的 XAML 吗?另外,在
collectionViewSource.Source = myGroup;中,myGroup是什么?
标签: c# wpf xaml grouping icollectionview