TreeView, HierarchicalDataTemplate i dane rekurencyjne

Dla mojego widoku drzewa mam dwie różne klasy, które dostarczają 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; }
}

Teraz chcę, aby moje TreeView wyświetlało elementy w TreeViewModel i pokazywało dane hierarchiczne dostarczone przez NodeViewModel.

Oto mój 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>

Próbowałem to zapewnićItems jakItemsSource zTreeView. Nie pokazuje danych hierarchicznie, jeśli wyświetla się cokolwiek.

I próbowałem użyćItemTemplate zamiast tegoTreeView.Resources, zbyt.

Co w tym złego?

Być może problem jest pierwszyTextBlock Text Binding? Chcę wyświetlićName własnośćNodeViewModel wItems tam.

questionAnswers(2)

yourAnswerToTheQuestion