StaticResource не найден в проекте WPF

#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" ...>