TreeView, HierarchicalDataTemplate e dados recursivos

Para o meu treeview eu tenho duas classes diferentes que fornecem o 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; }
}

Agora quero que meu TreeView exiba os itens no TreeViewModel e mostre os dados hierárquicos fornecidos pelo NodeViewModel.

Aqui está o meu 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>

Tentei fornecerItems Enquanto oItemsSource doTreeView. Ele não mostra os dados hierarquicamente, se estiver exibindo algo.

E eu tentei usar oItemTemplate ao invés deTreeView.Resources, também.

O que há de errado nisso?

Talvez um problema seja o primeiroTextBlock Text Binding? Eu quero mostrar oName propriedade doNodeViewModel emItems lá.

questionAnswers(2)

yourAnswerToTheQuestion