在WPF中绑定自定义对象到TreeView

本文关键字:对象 TreeView 自定义 绑定 WPF | 更新日期: 2023-09-27 18:07:58

下面定义了一个类的对象

class XYZ
{
    List<XYZ> child;
    String header;
}

我想把这个对象绑定到一个树视图。最初XYZ根将是最顶层的TreeViewItem。root将把List子节点作为TreeViewItems子节点。这将递归地进行,直到每个XYZ对象的List不为空。每个TreeViewItem要么是一个节点,要么是一个叶子(如果List子节点为空)。

我可以通过将TreeViewItem作为子元素添加到父元素TreeViewItem中来编程。

等级数未知。

我提到这个答案绑定对象到WPF TreeView,但这里提到的是一个三层层次结构。

在WPF中绑定自定义对象到TreeView

你只需要为你的视图模型定义分层数据模板,它应该照顾到你的树视图中的多个层次。

确保您正在使用的集合实现了INotificationPropertyChanged

数据模板将在

行中
<TreeView ItemsSource={Binding child}>
<TreeView.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding child}" DataType="{x:Type vm:XYZ}">
<Grid>
<TextBlock Text="{Binding header}"/>
</Grid>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>