使用 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