Ich habe zwei einfache ViewModels, NodeViewModel
und LeafViewModel
, die Elemente in einem TreeView sein können. Genau wie unten. Templates werden implizit angewendet, weil ich keinen benutzerdefinierten Template-Selektor möchte.implizite DataTemplates versus Beispieldaten vs. Mischbarkeit
<UserControl x:Class="MyProject.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:ViewModels="clr-namespace:MyProject.ViewModels" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" d:DataContext="{d:DesignData /SampleData/NodeViewModelSampleData.xaml}">
<UserControl.Resources>
<HierarchicalDataTemplate DataType="{x:Type ViewModels:NodeViewModel}" ItemsSource={Binding Children}>
<StackPanel Orientation="Horizontal">
<CheckBox Content="{Binding Name}" IsChecked="{Binding Result}"/>
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type ViewModels:LeafViewModel}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
</UserControl.Resources>
<TreeView ItemsSource="{Binding Children}" />
</UserControl>
Wie kann ich Beispieldaten in Mischung erzeugen, die einen Baum mit beide NodeViewModel
s enthält und LeafViewModel
s und es dann als die Daten, die in der Baumstruktur angezeigt werden, während immer noch implict Vorlagenauswahl mit?