我想创建一个 WPFTreeView
有两个分组选项(单选按钮)。因此,数据将以两种不同的方式分组为 2 级层次结构,最低级别是实际数据项,组只是表示数据的一种方式,以便于理解。
他们还可以按组(复选框)选择项目,但我已经弄清楚了该部分,例如如果我想表示数据库对象并希望按架构或对象类型(表、视图、函数等)对它们进行分组。
我只是不知道应该如何开始两种分组模式。我应该彻底重组我的ObservableCollection
每当分组模式改变时或者是否有更直接的方法?
另外,如果我的DataTemplate
根据分组模式,第二级会略有不同,例如,按对象类型分组时,您需要在第二级显示架构?
谁能给我一些关于如何开始以及使用哪些技术的提示?
通过设置对您的收藏进行分组组描述 http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.groupdescriptions.aspx在其 CollectionViewSource 上。您可以通过执行以下操作在代码中完成此操作:
CollectionViewSource.GetDefaultView(yourCollection).GroupDescriptions.Add(
new PropertyGroupDescription("PropertyName"));
或者您可以通过创建一个 XAML 来完成此操作集合视图源 http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx明确地。
<CollectionViewSource
Source="{StaticResource yourCollection}"
xmlns:dat="clr-namespace:System.Windows.Data;assembly=PresentationFramework">
<CollectionViewSource.GroupDescriptions>
<dat:PropertyGroupDescription PropertyName="PropertyName"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
如果您使用的是像 ListBox 这样的普通 ItemsControl 那么您只需设置团体风格 http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.groupstyle.aspx财产。如果你想使用 TreeView,那么我想你想绑定到Groups http://msdn.microsoft.com/en-us/library/system.componentmodel.icollectionview.groups.aspxICollectionView 上的属性。您应该阅读 Bea Stollnitz 关于分组的博客文章:
- 如何在 TreeView 中显示分组数据? http://www.zagstudio.com/blog/365
- 如何进行自定义分组? http://www.zagstudio.com/blog/367
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)