我正在尝试将字符串列表绑定到TreeViewItem
但由于某种原因没有显示数据,也没有任何错误。
在XAML中,我在TreeViewItem中有以下内容。
<TreeView Name="treeContainer">
<TreeViewItem Header="Tables" Name="treeTablesContainer">
<ItemsControl.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}" />
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<HierarchicalDataTemplate
DataType="{x:Type system:String}">
<TextBlock Text="{Binding dbTables}" />
</HierarchicalDataTemplate>
</ItemsControl.ItemTemplate>
</TreeViewItem>
</TreeView>
在cs代码中,我有以下内容:
dbTables = new List<string>();
dbTables.Add("Tabl2");
treeTablesContainer.ItemsSource = dbTables;
TreeViewItem可以展开和折叠,但是,没有孩子显示,我也看不到如何让它工作。
我在项目的另一部分做了类似的事情,除了不同的List是我自己的类的类型,我可以在行<TextBlock Text="{Binding dbTables}" />
中引用但我认为这不是& #39;因为List<string>
类型而工作,所以我没有访问权限,我的想法是否正确,如果是,我该如何解决这个问题。
答案 0 :(得分:1)
<TreeView Name="treeContainer">
<TreeViewItem Header="Tables" Name="treeTablesContainer">
<ItemsControl.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}" />
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<HierarchicalDataTemplate>
<TextBlock Text="{Binding }" />
</HierarchicalDataTemplate>
</ItemsControl.ItemTemplate>
</TreeViewItem>
</TreeView>
只需删除绑定中的dbTables,因为它不绑定到集合中名为dbTables的任何属性
答案 1 :(得分:0)
分层数据模板是输出数据源中每个项目的数据模板。这意味着你的示例绑定文本块在字符串类上搜索dbTables。您的xaml代码应该看起来像
<TreeView Name="treeContainer">
<TreeViewItem Header="Tables" Name="treeTablesContainer">
<ItemsControl.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}" />
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<HierarchicalDataTemplate>
<TextBlock Text="{Binding}" />
</HierarchicalDataTemplate>
</ItemsControl.ItemTemplate>
</TreeViewItem>
</TreeView>