所以我在Window.Resources中定义了我的模板
<Window.Resources>
<HierarchicalDataTemplate DataType="tree:TreeNode" ItemsSource="{Binding Children}" x:Key="template">
<TextBlock Text="{Binding DisplayName}"/>
</HierarchicalDataTemplate>
</Window.Resources>
我在TreeView中像这样引用它
<TreeView Name="DirTreeView" BorderBrush="White" ItemsSource="{Binding FileSystemTreeNodes}" ItemTemplate="{StaticResource template}"/>
但是当我尝试启动我的应用程序时,它会引发异常。异常消息表明它找不到名为“template”的资源。那是为什么?
答案 0 :(得分:2)
DataTemplate的DataType
属性隐式设置x:Key
。
您通常不需要两者,因此要么删除DataType,要么将if放在键后面:
<HierarchicalDataTemplate x:Key="template" DataType="tree:TreeNode" ...>