TreeView, HierarchicalDataTemplate и рекурсивные данные

Для моего дерева я имею два разных класса, которые предоставляют ItemsSource.

public class TreeViewModel : ViewModelBase
{
    public ObservableCollection<NodeViewModel> Items { get; set; }
}

public class NodeViewModel : ViewModelBase
{
    public string Id { get; set; }
    public string Name { get; set; }
    public ObservableCollection<NodeViewModel> Children { get; set; }
}

Теперь я хочу, чтобы мой TreeView отображал элементы в TreeViewModel и отображал иерархические данные в соответствии с NodeViewModel.

Вот мой XAML

<Window x:Class="TreeViewMasterDetails.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:TreeViewMasterDetails" 
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TreeView Height="Auto" 
                  HorizontalAlignment="Stretch" 
                  Margin="10" 
                  VerticalAlignment="Stretch" 
                  Width="Auto">
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="x:Type local:TreeViewModel" ItemsSource="{Binding Items}">
                    <TextBlock Text="{Binding Path=Name}"></TextBlock>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="x:Type local:NodeViewModel" ItemsSource="{Binding Children}">
                    <TextBlock Text="{Binding Name}"></TextBlock>
                </HierarchicalDataTemplate>
            </TreeView.Resources>
        </TreeView>
    </Grid>
</Window>

Пытались предоставитьItems какItemsSource изTreeView, Он не показывает данные иерархически, если отображает что-либо.

И я попытался с помощьюItemTemplate вместоTreeView.Resources, слишком.

Что в этом плохого?

Возможно проблема перваяTextBlock Text Binding? Я хочу отобразитьName собственностьNodeViewModel вItems там.

Ответы на вопрос(2)

Ваш ответ на вопрос