将WPF TreeView绑定到多个列表 [英] Binding a WPF TreeView to multiple Lists

查看:93
本文介绍了将WPF TreeView绑定到多个列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在WPF树视图中显示以下结构:

I'd like to display the following structure in a WPF Treeview:

public class Group{
    public string Groupname;
    public IEnumerable<Group> Groups;
    public Ienumerable<User> Member;
}

我的ViewModel看起来像这样:

My ViewModel looks like this:

public class ViewModel{
    public Group RootGroup;
}

我认为XAML代码应如下所示:

I think the XAML Code should look like this:

<TreeView>
    <TreeView.ItemTemplate>
         <HierarchicalDataTemplate ItemsSource={Binding ViewModel.RootGroup}>
             <TextBlock Text={Binding Groupname}/>
                 <HierarchicalDataTemplate ItemsSource={Binding Member}>
                     <TextBlock Text={Binding Displayname}/>
                 </HierarchicalDataTemplate>
         </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

我希望它看起来像什么

RootGroup-Name
    -Member1
    -Member2
    -Member3
    -Member4
    -SubGroup1
        -Member1
        -Sub-SubGroup1
            -Member1
    -SubGroup2
        -Sub-SubGroup2
            -Sub-Sub-SubGroup1
                -Member1

我已经将DataContext绑定到其自身,所以这不应该是我的TreeView不显示任何内容的原因.

I've bound the DataContext to itself so this shouldn't be the reason why my TreeView wont show anything.

推荐答案

最后,我自己找到了解决方案:

Finally I just found the solution by myself:

<TreeView Grid.Row="1" ItemsSource="{Binding MVM.RootGroup}">
  <TreeView.ItemTemplate>
    <HierarchicalDataTemplate ItemsSource="{Binding Groups}">
      <TextBlock Text="{Binding Name}"/>
      <HierarchicalDataTemplate.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Members}">
          <TextBlock Text="{Binding Name}"/>
          <HierarchicalDataTemplate.ItemTemplate>
            <DataTemplate>
              <TextBlock Text="{Binding Displayname}"/>
            </DataTemplate>
          </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
      </HierarchicalDataTemplate.ItemTemplate>
    </HierarchicalDataTemplate>
  </TreeView.ItemTemplate>
</TreeView>

但是第一级的用户迷路了.

But the Users from the first level get lost.

这篇关于将WPF TreeView绑定到多个列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆