TreeView具有无限节点

时间:2014-01-24 06:23:47

标签: c# wpf xaml treeview

我想用无限节点制作树视图。我有2个viewmodel for tree:

public class GroupViewModel
{
    public GroupViewModel()
    {
    }

    public string GroupName { get; set; }

    public ObservableCollection<TagViewModel> Tags { get; set; }
    public ObservableCollection<GroupViewModel> Groups { get; set; }
}

public class TagViewModel
{
    public TagViewModel()
    {
    }

    public string TagName { 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>

  

ItemsSource =“{Binding Path = Tags}”

我有带标签的第一级组

  

ItemsSource =“{Binding Path = Groups}”

我有子组的组 - 没有标签。

如何用树和标签制作树?

1 个答案:

答案 0 :(得分:0)

每个树节点只能使用一个集合作为其子节点的项源。 您至少有两个选项可以在一个集合中组合组和标签:

  • 将ViewModel更改为在单个ObservableCollection中包含组和标签
  • 使用CompositeCollection在XAML中合并两个集合