C# 将WPF TreeView绑定到对象
如何将TreeView绑定到分组集合ListCollectionView 代码cs:C# 将WPF TreeView绑定到对象,c#,wpf,xaml,C#,Wpf,Xaml,如何将TreeView绑定到分组集合ListCollectionView 代码cs: ListCollectionView view=new ListCollectionView(Global._subjectCollection); view.GroupDescriptions.Add(new PropertyGroupDescription("Fund")); view.GroupDescriptions.Add(new PropertyGroupDescription("Cipher"))
ListCollectionView view=new ListCollectionView(Global._subjectCollection);
view.GroupDescriptions.Add(new PropertyGroupDescription("Fund"));
view.GroupDescriptions.Add(new PropertyGroupDescription("Cipher"));
treeView1.ItemsSource = view.Groups;
代码XAML:
<TreeView>???</TreeView>
???
查看Bea Stollnitz的博客条目
您可以使用HierarchycalDataTemplate显示CollectionViewGroup。Name属性将具有分组依据的属性的值,因此Fund或Cipher的值,Items属性将具有外部分组的嵌套组和最内部分组的实际对象。它看起来像这样:
<Window.Resources>
<!-- Template for actual object -->
<DataTemplate x:Key="ThirdTemplate">
<TextBlock Text="{Binding OtherData}"/>
</DataTemplate>
<!-- Template for Cipher groups -->
<HierarchicalDataTemplate x:Key="SecondTemplate"
ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource ThirdTemplate}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
<!-- Template for Fund groups -->
<HierarchicalDataTemplate x:Key="FirstTemplate"
ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource SecondTemplate}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</Window.Resources>
<TreeView Name="treeView1" ItemTemplate="{StaticResource FirstTemplate}"/>