WPF TreeView层次结构绑定. [英] WPF TreeView hierarchical binding.
本文介绍了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;
}
}
到树视图.我就是这样
<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>
并且只有空的文档面板.该对象被填充为write. 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>
哦,您必须以编程方式或在标记中设置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屋!
查看全文