代码之家  ›  专栏  ›  技术社区  ›  OrPaz

WPF树视图层次结构数据模板MTM关系

  •  1
  • OrPaz  · 技术社区  · 16 年前

    我正在尝试使用HierarchicalDataTemplate将TreeView映射到集合。集合包含一个对象,该对象包含其自身的子实体(多对多关系),然后使用常规的一对多关系转到另一个对象。 我使用以下内容:

    <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”集合从组织中检索“Organization”儿童。这很管用。我的问题是,我希望TreeView继续深入到组织的“单位”集合中。但我得到以下错误: “项目已添加…”在“组织”实体上…

    会认同任何想法, 多谢,

    1 回复  |  直到 16 年前
        1
  •  1
  •   user7116    16 年前

    将第一个定义切换到:

    <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>
    
    推荐文章