使用 List<string> 中的 ItemSource 创建 TreeViewItem 子项
Creating TreeViewItem children using ItemSource from List<string>
我正在尝试将字符串列表绑定到 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 可以展开和折叠,但是没有显示子项,我不知道如何让它工作。
我在项目的另一部分做了类似的事情,不同之处在于列表是我自己的 class 类型,具有我可以在 <TextBlock Text="{Binding dbTables}" />
行中引用的属性但是我认为这不起作用,因为 List<string>
类型,所以我没有 属性 可以访问,我的想法是否正确,如果是这样,我该如何解决这个问题。
分层数据模板是out数据源中每一项的数据模板。这意味着在您的文本块绑定示例中,在字符串 class 上搜索 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>
<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
我正在尝试将字符串列表绑定到 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 可以展开和折叠,但是没有显示子项,我不知道如何让它工作。
我在项目的另一部分做了类似的事情,不同之处在于列表是我自己的 class 类型,具有我可以在 <TextBlock Text="{Binding dbTables}" />
行中引用的属性但是我认为这不起作用,因为 List<string>
类型,所以我没有 属性 可以访问,我的想法是否正确,如果是这样,我该如何解决这个问题。
分层数据模板是out数据源中每一项的数据模板。这意味着在您的文本块绑定示例中,在字符串 class 上搜索 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>
<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