首页 / C# / C#-Wpf树视图分组
C#-Wpf树视图分组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-Wpf树视图分组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2096字,纯文字阅读大概需要3分钟。
内容图文
![C#-Wpf树视图分组](/upload/InfoBanner/zyjiaocheng/661/48f4e21152254988b852b3ae4aa2d97b.jpg)
我有一个绑定到List< MyCustomType>的TreeView.我需要显示按MyType.MyGroupingProperty分组的列表,并将列表项本身显示为叶子.我怎样才能做到这一点?
我尝试了什么
由于需要显示按MyType.MyGroupingProperty分组的列表,因此我创建了CollectionViewSource,将其绑定到TreeView并创建HierarchicalDataTemplate:
<CollectionViewSource x:Key="cvs" Source="{Binding}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="MyGroupingProperty"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
<HierarchicalDataTemplate DataType="{x:Type vm:DeviceViewModel}" ItemsSource="{Binding Items}" >
<TextBlock Text="{Binding MyGroupingProperty}" />
</HierarchicalDataTemplate>
到现在为止还挺好.但是现在我无法显示项目,因为DataTemplate需要一种我已经使用过的类型,并且我得到一个异常“密钥已经添加到字典中”;如果我使用x:key也不起作用.
<DataTemplate DataType="{x:Type vm:DeviceViewModel} >
<TextBlock Text="{Binding AnotherProperty}" />
</DataTemplate>
解决方法:
当您将TreeView绑定到组时,HierarchicalDataTemplate将处理它们而不是DeviceViewModel,因此模板应类似于
<HierarchicalDataTemplate ItemsSource="{Binding Path=Items}" ItemTemplate="{StaticResource dataTemplate}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
完整的解决方案如下所示:
<TreeView ItemsSource="{Binding Source={StaticResource yourCollection}, Path=Groups}" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<!--GroupItem.Name-->
<TextBlock Text="{Binding Path=Name}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<!--your item's property-->
<TextBlock Text="{Binding Path=Property}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
希望能帮助到你.
附言我不知道您是否需要模板包含在资源中,但是可能会引起误解.因为我还没有看到您的代码,所以我只能猜测出什么问题了,但是我怀疑您指定了错误的目标类型,请尝试以下操作:
<TreeView.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Items}" DataType="{x:Type CollectionViewGroup}">
其余部分相同.如果模板的类型与实际类型不同,它将使用默认的数据表示方式(文本块ToString()).
内容总结
以上是互联网集市为您收集整理的C#-Wpf树视图分组全部内容,希望文章能够帮你解决C#-Wpf树视图分组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。