我尝试使用 WPF/C#.Net 4.0 实现具有 4 个级别的树视图。它加载所有 4 个级别但无法选择第 4 级,并且在选择第 3 级时它选择具有第 4 级的组。Continent->Country->District->Artifacts 是一种结构,但还有另一种结构 Continent->Products->Artifacts
资源数据模板->
<DataTemplate x:Key="DistrictTemplates">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=ArtifactName}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="CountryTemplate">
<TreeViewItem ItemsSource="{Binding Path=District}"
ItemTemplate=" {StaticResource DistrictTemplates}"
Header="{Binding Path=Code}">
</TreeViewItem>
</DataTemplate>
树视图代码->
<TreeView Name="treeExplorer" MouseDoubleClick="TreeView_MouseDoubleClick" SelectedItemChanged="treeExplorer_SelectedItemChanged">
<TreeViewItem Name="tviDefinition" IsExpanded="True" Header="Continent">
<TreeViewItem ItemsSource="{Binding Path=Country}" ItemTemplate="{StaticResource CountryTemplate}" Header="Country" />
</TreeViewItem>
</TreeView>
还有一些其他树项。我不能在 TreeView.Resources 中使用内联模板,如果可以使用这个 HierarchicalDataTemplate 我也很困惑,因为我不能调用 Country.Districts.ArtifactName 并有两个层次结构,但我可以调用 Country.Districts( ) 然后 Districts 具有 code 属性并使用代码我可以找到 Artifacts.And 我在 usercontrol.resources 中使用 datatemplates 我怎么能做到这一点?