【问题标题】:WPF Treeview HierarchicalDataTemplate MTM RelationWPF Treeview HierarchicalDataTemplate MTM 关系
【发布时间】:2010-07-14 13:40:08
【问题描述】:

我正在尝试使用 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”集合从组织中检索“组织”子级。这完美地工作。我的问题是我希望树视图继续深入到组织“单位”集合中。但我收到以下错误: '组织'实体上的“项目已添加...”...

会接受任何想法, 非常感谢,

【问题讨论】:

    标签: wpf wpf-controls binding


    【解决方案1】:

    将第一个定义切换为:

    <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>
    

    【讨论】:

    • 谢谢!您的解决方案是正确的!当我遇到异常时,我只需要将 DynamicResource 更改为 staticResource。当然,我必须先找到 ChildOrgTemplate。现在它完美地工作了!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多