我试图在树视图中显示这个结构:一个Product有一个TreeViewItem,每个TreeViewItem可能有一个TreeViewItems列表:
class Product {
public string Name {get;set;}
public TreeViewItem Item {get; set;}
}
class TreeViewItem {
public string Name {get; set;}
public List<TreeViewItem> Subitems {get;set;}
}
我试过这个,我认为可行:
<TreeView ItemsSource="{Binding Product.Item}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type DataModel:TreeViewItem}">
<TextBlock Text="{Binding Name}"></TextBlock>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
但它什么都没显示。我已经尝试了很长一段时间,但感到迷茫,非常感谢你的帮助。
答案 0 :(得分:1)
您分配给TreeView.ItemsSource
的值必须实现IEnumerable
,您还需要在HierarchicalDataTemplate
class Product {
public string Name {get;set;}
public TreeViewItem Item {get; set;}
public IEnumerable<TreeViewItem> Items { get { return new[] { item }; }
}
<TreeView ItemsSource="{Binding Product.Items}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type DataModel:TreeViewItem}" ItemsSource="{Binding SubItems}">
<TextBlock Text="{Binding Name}"></TextBlock>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>