如何将 ObservableCollection 绑定到 TreeView(分层)

How to bind an ObservableCollection to TreeView (hierarchical)

我有以下 TreeView:

<Grid>
    <TreeView Background="LightGoldenrodYellow"  Grid.Row="3">

        <TreeViewItem Header="Section 4">
            <TreeViewItem>
                <TreeViewItem.Header>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="Total:"  Width="150"/>
                        <TextBlock Text="{Binding Pool.Count}" />
                    </StackPanel>
                </TreeViewItem.Header>
            </TreeViewItem>
            <TreeViewItem>
                <TreeViewItem.Header>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="Code" Width="150" />
                        <TextBlock Text="{Binding SecretViewModel.Codes}" />
                    </StackPanel>
                </TreeViewItem.Header>
            </TreeViewItem>
            <TreeViewItem Header="Sub-Section 4.1">
                <TreeViewItem>
                    <ListBox  ItemsSource="{Binding Path=ListOfNames, UpdateSourceTrigger=PropertyChanged}" />
                </TreeViewItem>
            </TreeViewItem>
        </TreeViewItem>

        <TreeViewItem Header="Section 5">
            <TreeViewItem>
                <TreeViewItem.Header>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="Color:" Width="150" />
                        <TextBlock Text="{Binding Colors}" />
                    </StackPanel>
                </TreeViewItem.Header>
            </TreeViewItem>

    </TreeView>
</Grid>

如何替换列表框并将 ObservableCollection 绑定到 TreeviewItem?它应该看起来 分层 .

我尝试插入此代码而不是 TextBox,但这不起作用:

<HierarchicalDataTemplate>
    <HierarchicalDataTemplate.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=ListOfNames, UpdateSourceTrigger=PropertyChanged}"/>
        </DataTemplate>
    </HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>

不太清楚你到底想达到什么目的。你不是说...

<TreeViewItem Header="Section 4">
    <TreeViewItem Header="Sub-Section 4.1" 
                  ItemsSource="{Binding Path=ListOfNames,
                                UpdateSourceTrigger=PropertyChanged}" />
</TreeViewItem>