C# 具有无限节点的TreeView
我想让treeview拥有无限的节点。我有两个树的viewmodel:C# 具有无限节点的TreeView,c#,wpf,xaml,treeview,C#,Wpf,Xaml,Treeview,我想让treeview拥有无限的节点。我有两个树的viewmodel: public class GroupViewModel { public GroupViewModel() { } public string GroupName { get; set; } public ObservableCollection<TagViewModel> Tags { get; set; } public ObservableCollecti
public class GroupViewModel
{
public GroupViewModel()
{
}
public string GroupName { get; set; }
public ObservableCollection<TagViewModel> Tags { get; set; }
public ObservableCollection<GroupViewModel> Groups { get; set; }
}
我的XAML:
<HierarchicalDataTemplate DataType="{x:Type ViewModel:GroupViewModel}" ItemsSource="{Binding Path=Tags}">
<TextBlock Text="{Binding Path=GroupName}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type ViewModel:TagViewModel}">
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<CheckBox />
<TextBlock Text="{Binding Path=TagName}" Margin="5,0,0,0" />
</StackPanel>
</HierarchicalDataTemplate>
TreeView Name="groupsTreeView"></TreeView>
TreeView Name=“groupsTreeView”>
与
ItemsSource=“{Binding Path=Tags}”
我有带标签的一级组
和
ItemsSource=“{Binding Path=Groups}”
我有带子组的组-没有标记
如何使用组和标记创建树?每个树节点只能使用一个集合作为其子节点的项源。 您至少有两个选项可以在单个集合中组合组和标记:
- 将ViewModel更改为在单个ObservableCollection中包含组和标记
- 在XAML中使用组合键组合两个集合
<HierarchicalDataTemplate DataType="{x:Type ViewModel:GroupViewModel}" ItemsSource="{Binding Path=Tags}">
<TextBlock Text="{Binding Path=GroupName}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type ViewModel:TagViewModel}">
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<CheckBox />
<TextBlock Text="{Binding Path=TagName}" Margin="5,0,0,0" />
</StackPanel>
</HierarchicalDataTemplate>
TreeView Name="groupsTreeView"></TreeView>