#wpf #xaml
#wpf #xaml
Вопрос:
Итак, у меня есть свой шаблон, определенный в окне.Ресурсы
<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». Почему это так?
Комментарии:
1. это странно, вы пробовали перезапустить vs или перестроить решение?
2. @Bizz да, я перезапускал и перестраивал несколько раз, но он по-прежнему не работает
3. Удалите тип данных из объявления HierarchicalDataTemplate.
4. @Clemens Это сработало. Спасибо!
Ответ №1:
DataType
Свойство DataTemplate неявно устанавливает x:Key
.
Обычно вам не нужны оба, поэтому либо удалите тип данных, либо поместите if после ключа:
<HierarchicalDataTemplate x:Key="template" DataType="tree:TreeNode" ...>