代码之家  ›  专栏  ›  技术社区  ›  Koen

分组WPF树视图中的数据

  •  5
  • Koen  · 技术社区  · 16 年前

    我想创建一个WPF TreeView 有两个分组选项(单选按钮)。因此,数据将以两种不同的方式在两级层次结构中分组,最低级别是实际数据项,而分组只是表示数据以便于理解的一种方式。

    他们也可以按组(复选框)选择项目,但我已经了解了这一部分,例如,如果我想表示数据库对象,并希望按模式或对象类型(表、视图、函数等)对它们进行分组。

    我只是不知道如何开始两种分组模式。我应该完全重组我的 ObservableCollection 无论何时分组模式改变,还是有更直接的方法?

    还有,如果我的 DataTemplate 对于第二个级别,根据分组模式会略有不同,例如,当按对象类型分组时,需要在级别2上显示架构?

    有人能给我一些关于如何开始和使用哪些技术的提示吗?

    2 回复  |  直到 10 年前
        1
  •  3
  •   Yusuf Tarık Günaydın M2012    10 年前

    按设置对收藏进行分组 GroupDescriptions 在其CollectionViewSource上。您可以在代码中这样做:

    CollectionViewSource.GetDefaultView(yourCollection).GroupDescriptions.Add(
        new PropertyGroupDescription("PropertyName"));
    

    或者您可以在XAML中通过创建 CollectionViewSource 明确地。

        <CollectionViewSource
            Source="{StaticResource yourCollection}"
            xmlns:dat="clr-namespace:System.Windows.Data;assembly=PresentationFramework">
            <CollectionViewSource.GroupDescriptions>
                <dat:PropertyGroupDescription PropertyName="PropertyName"/>
            </CollectionViewSource.GroupDescriptions>
        </CollectionViewSource>
    

    如果您使用的是类似于列表框的普通项控件,那么您只需设置 GroupStyle 财产。如果你想使用TreeView,那么我认为你想绑定到 Groups ICollectionView上的属性。您应该在分组时阅读bea stollnitz的博客条目:

        2
  •  0
  •   Eugene Cheverda    16 年前

    Check this link HierarchicalDataTemplate . 下面给出了将它与各种类型一起使用的示例。