WPF Treeview HierarchicalDataTemplate MTM Relation - PullRequest
1 голос
/ 14 июля 2010

Я пытаюсь сопоставить TreeView с коллекцией, используя HierarchicalDataTemplate.Коллекция содержит объект, который содержит свои дочерние объекты (отношение «многие ко многим»), а затем переходит к другому объекту, используя обычное отношение «один ко многим».Я использую следующее:

<HierarchicalDataTemplate DataType="{x:Type src:Organization}" ItemsSource="{Binding Path=ChildOrgs}" >
            <StackPanel>
                <TextBlock Text="{Binding Path=Name}"/>
            </StackPanel>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type src:Organization}" ItemsSource="{Binding Path=Units}" >
            <StackPanel>
                <TextBlock Text="{Binding Path=Name}"/>
            </StackPanel>
</HierarchicalDataTemplate>

Я использую коллекцию ChildOrgs для извлечения дочерних элементов организации из Организации.Это работает отлично.Моя проблема в том, что я хочу, чтобы древовидная структура продолжала углубляться в коллекцию «Подразделение» организации.Но я получаю следующую ошибку: «Элемент уже был добавлен ...» в сущности «Организация» ...

Будет ценить любые идеи, Большое спасибо,

1 Ответ

1 голос
/ 14 июля 2010

Переключить первое определение на:

<HierarchicalDataTemplate DataType="{x:Type src:Organization}"
    ItemsSource="{Binding Path=ChildOrgs}"
    ItemTemplate="{DynamicResource ChildOrgTemplate}">
    <StackPanel>
        <TextBlock Text="{Binding Path=Name}"/>
    </StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="ChildOrgTemplate"
    ItemsSource="{Binding Path=Units}">
    <StackPanel>
        <TextBlock Text="{Binding Path=Name}"/>
    </StackPanel>
</HierarchicalDataTemplate>
...