在 wpf 中对列表视图进行分组
Grouping listviews in wpf
在 UWP 应用程序中,我可以将 CollectionViewSource 的源设置为列表,它会立即将其分组。对于 WPF,它的工作方式似乎有所不同。我希望能够在后面的代码中对我的列表进行分组,然后将其作为集合提供给它,而不是使用 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 中做这样的事情?
因此,根据我的经验,UWP 和 WPF 之间的区别似乎是,在 UWP 中,您使用 ByGroup 预先分组,然后将列表提供给 CollectionViewSource。在 WPF 中,您将 CollectionViewSource 与 List 一起提供,然后它自己对其进行分组。在 UWP 中,HeaderTemplate 的数据上下文是 MyGroup。在 WPF 中,数据上下文是 CollectionViewGroup。我刚刚通过绑定传递了一个不同的对象,它起作用了。
在 UWP 应用程序中,我可以将 CollectionViewSource 的源设置为列表,它会立即将其分组。对于 WPF,它的工作方式似乎有所不同。我希望能够在后面的代码中对我的列表进行分组,然后将其作为集合提供给它,而不是使用 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 中做这样的事情?
因此,根据我的经验,UWP 和 WPF 之间的区别似乎是,在 UWP 中,您使用 ByGroup 预先分组,然后将列表提供给 CollectionViewSource。在 WPF 中,您将 CollectionViewSource 与 List 一起提供,然后它自己对其进行分组。在 UWP 中,HeaderTemplate 的数据上下文是 MyGroup。在 WPF 中,数据上下文是 CollectionViewGroup。我刚刚通过绑定传递了一个不同的对象,它起作用了。