Per la mia vista ad albero ho due classi diverse che forniscono la risorsa ItemsSource.TreeView, HierarchicalDataTemplate e dati ricorsivi
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; }
}
Ora voglio la mia TreeView per visualizzare i prodotti in TreeViewModel e mostrare i dati gerarchici forniti dal NodeViewModel.
Ecco il mio 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>
cercato di fornire Items
come ItemsSource
del TreeView
. Non mostra i dati gerarchicamente, se mostra qualcosa.
E ho provato a utilizzare lo ItemTemplate
anziché lo TreeView.Resources
.
Cosa c'è di sbagliato in proposito?
Forse un problema è il primo TextBlock Text Binding
? Desidero visualizzare la proprietà Name
dello NodeViewModel
in Items
.
Penso che questo sia un duplicato di [WPF TreeView HierarchicalDataTemplate - binding to object with multiple child collections] [1]. [1]: http://stackoverflow.com/questions/1912481/wpf-treeview-hierarchicaldatatemplate-binding-to-object-with-multiple-child-co – Schollii
Sì, ho già visto. Ma non funziona qui. –
Si prega di vedere la mia domanda aggiornato –