在树视图中显示一个简单的结构
Display a simple structure in a treeview
我试图在树视图中显示此结构:一个产品有一个 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>
但它什么也没显示。我已经尝试了一段时间,但感到迷茫,非常感谢您的帮助。
您分配给 TreeView.ItemsSource
的值必须实现 IEnumerable
并且您还需要在 HierarchicalDataTemplate
上指定 ItemsSource
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>
我试图在树视图中显示此结构:一个产品有一个 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>
但它什么也没显示。我已经尝试了一段时间,但感到迷茫,非常感谢您的帮助。
您分配给 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>