【问题标题】:Grouping listviews in wpf在 wpf 中对列表视图进行分组
【发布时间】: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


【解决方案1】:

根据我的经验,UWP 和 WPF 之间的区别似乎在于,在 UWP 中,您使用 ByGroup 预先分组,然后将列表提供给 CollectionViewSource。在 WPF 中,您将 CollectionViewSource 与 List 一起提供,然后它自己将其分组。在 UWP 中,HeaderTemplate 的数据上下文是 MyGroup。在 WPF 中,数据上下文是 CollectionViewGroup。我只是通过绑定传递了一个不同的对象,它起作用了。

【讨论】:

  • 太棒了 - 作为社区,我们在这个问题的 cmets 和(已删除的)答案中付出的努力一无所获。叹。为什么要打扰这样的问题和答案?您可以通过简单地首先删除无信息问题来节省时间。
猜你喜欢
  • 2011-03-16
  • 2015-10-07
  • 1970-01-01
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
相关资源
最近更新 更多