首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF MVVM TreeView群

WPF MVVM TreeView群
EN

Stack Overflow用户
提问于 2015-06-22 08:34:42
回答 1查看 193关注 0票数 0

我有三节课:

  1. 建筑
  2. 办公室
  3. 人物

大楼里有办公室,每个办公室都有人员。我的ViewModel有一个办公室的ObservableCollection,其中之一是建筑物和ObservableCollection。

创建绑定到office的TreeView并按建筑物、办公室、人员分组的最佳方法是什么?

示例:

  • Building1
代码语言:javascript
运行
复制
- Office1
代码语言:javascript
运行
复制
    - Person1  
    - Person2  
    - Person3  

代码语言:javascript
运行
复制
- Office2
代码语言:javascript
运行
复制
    - Person4  
    - person5  

  • Building2
代码语言:javascript
运行
复制
- Office3
代码语言:javascript
运行
复制
    - Person6  
    - Person7  
    - Person8  

代码语言:javascript
运行
复制
- Office4
代码语言:javascript
运行
复制
    - Person9  
    - person10 

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 09:01:13

如果您希望在树视图中获得此布局,则将为建筑物和办公室创建HieratchicalDataTemplates,为个人创建DataTemplate。我认为在您的所有3个Name中都有一个名为Name的文本属性。

代码语言:javascript
运行
复制
<TreeView ItemsSource="{Binding Buildings}">
            <TreeView.Resources>
                <HierarchicalDataTemplate ItemsSource="{Binding Offices}" DataType="{x:Type VM:BuildingViewModel}">
                    <TextBlock Text="{Binding Name}"/>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Persons}" DataType="{x:Type VM:OfficeViewModel}">
                    <TextBlock Text="{Binding Name}"/>
                </HierarchicalDataTemplate>
                <DataTemplate DataType="{x:Type VM:PersonViewModel}">
                    <TextBlock Text="{Binding Name}"/>
                </DataTemplate>
            </TreeView.Resources>
        </TreeView>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30975338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档