TreeView с надстройкой - PullRequest
       25

TreeView с надстройкой

0 голосов
/ 09 марта 2012

У меня есть TreeView с ItemsSource, являющимся узлами разных типов.

class Node
class Folder : Node
class Project : Folder

Все 3 класса определены в основном проекте. И xaml, который я сейчас использую, выглядит так:

<TreeView Name="ProjectTreeView" SelectedItemChanged="ProjectTreeView_SelectedItemChanged">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type prj:Project}" ItemsSource="{Binding Children}">
            <TextBlock Text="{Binding Path=Name}" />
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type prj:Folder}" ItemsSource="{Binding Children}">
            <TextBlock Text="{Binding Path=Name}" />
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type prj:Node}">
            <TextBlock Text="{Binding Path=Name}" />
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

Что я хочу сделать, так это иметь систему надстроек. В разных сборках я хочу определить типы, которые будут наследовать Node или, в некоторых случаях, Folder. И я хочу, чтобы эти новые типы имели собственный макет в TreeView. Некоторые из них могут иметь несколько флажков или индикатор выполнения. XAML для этих новых типов должен быть частью сборок, в которых определены типы.

Как я могу во время выполнения сказать TreeView, какой шаблон использовать для этих новых типов узлов?

1 Ответ

0 голосов
/ 12 марта 2012

В каждой надстройке при определении каждой DataTemplate обязательно укажите DataType.

. В основном приложении при импорте надстроек необходимо выполнить Application.Current.Resources.Add шаблонов из ваших надстроек.Затем, когда WPF видит тип, он автоматически «раздувается» с использованием определенного DataTemplate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...