WPF TreeView 分层绑定. [英] WPF TreeView hierarchical binding.

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

问题描述

刚从 wpf 开始.我需要绑定对象(分层)文件夹

just starting with wpf. I need to bind the object (Hierarchical) Folder

public class Folder
{
    public Folder()
    {
        this.Name = string.Empty;
        this.Modules = new ObservableCollection<Module>();
        this.Folders = new List<Folder>();
        this.HasChild = false;
    }

    public Folder(Folder parent)
    {
        this.Name = string.Empty;
        this.Modules = new ObservableCollection<Module>();
        this.Folders = new List<Folder>();
        this.HasChild = false;
        this.Parent = parent;
    }

    public bool HasChild { get; set; }

    public string Name { get; set; }

    public List<Folder> Folders { get; set; }

    public ObservableCollection<Module> Modules { get; set; }

    public Folder Parent { get; set; }

    public Folder IfItemExists(string name)
    {
        foreach (Folder folder in Folders)
        {
            if (folder.Name == name)
            {
                return folder;
            }
        }

        return null;
    }
}

到树状视图.我就是这样做的

to the treeview. I am doing like that

   <TreeView Name="treeView" Margin="5">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Path=Folders}" DataType="{x:Type ModulesUpToDateChecker:Folder}">
                <HierarchicalDataTemplate.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Path=Name}"></TextBlock>
                    </DataTemplate>
                </HierarchicalDataTemplate.ItemTemplate>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
    </TreeView>

并且只有空的文档面板.对象被填充写入.Eche孩子有自己的相同类型的孩子.

and have just empty docpanel. The object is filled write. Eche child has own child with the same Type.

推荐答案

一个 HierarchicalDataTemplate 已经是一个 DataTemplate(它派生自它).因此,只需像这样跳过 HierarchicalDataTemplate 中的 ItemTemplate 和 DataTemplate 内容:

A HierarchicalDataTemplate is already a DataTemplate (it derives from it). So just skip the ItemTemplate and DataTemplate stuff inside your HierarchicalDataTemplate like so:

<TreeView Name="treeView" Margin="5">
  <TreeView.Resources>
    <HierarchicalDataTemplate ItemsSource="{Binding Path=Folders}" DataType="{x:Type WpfApplication220:Folder}">
      <TextBlock Text="{Binding Path=Name}"></TextBlock>
    </HierarchicalDataTemplate>
  </TreeView.Resources>
</TreeView>

哦,您必须以编程方式或在标记中设置树视图的 ItemsSource ..

Oh and you have to set the ItemsSource of your treeview either programmatically or in your markup ..

treeView.ItemsSource = ..yourFolderList..

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

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