在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,但这里提到的是一个三层层次结构。
你只需要为你的视图模型定义分层数据模板,它应该照顾到你的树视图中的多个层次。
确保您正在使用的集合实现了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>