Wpf 分层数据模板问题

Wpf 分层数据模板问题,wpf,hierarchicaldatatemplate,Wpf,Hierarchicaldatatemplate,我需要一些关于HierarchycalDataTemplate的帮助。。。 我正在尝试构建一个树状视图来显示一些层次结构数据 像这样: <TreeView x:Name="ruleSetTree" Margin="0,10,0,0" ItemsSource="{Binding Path=SelectedTypeRuleSet> <TreeView.ItemTemplate> <HierarchicalDataTemplate

我需要一些关于HierarchycalDataTemplate的帮助。。。 我正在尝试构建一个树状视图来显示一些层次结构数据 像这样:

<TreeView x:Name="ruleSetTree" Margin="0,10,0,0" ItemsSource="{Binding Path=SelectedTypeRuleSet>
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate DataType="{x:Type engine:RuleSet}"
                                      ItemsSource="{Binding Path=Rules}">
                <StackPanel>
                    <TextBlock Text="{Binding Path=Name}"/>
                    <TextBlock Text="{Binding Path=TargetType}"/>
                </StackPanel>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
</TreeView>

  • 规则集在第一个
    HierarchycalDataTemplate
    中没有指定
    项源。您不应该将其绑定到
    规则集的
    列表
    属性吗?

    为什么要将另一个分层数据模板嵌套到现有的模板中?这可能是个错误。特别是因为您没有在第一个数据模板中指定ItemSource。如果所有节点的类型都是
    规则集
    ,则可以这样做:

    <TreeView x:Name="ruleSetTree" Margin="0,10,0,0" ItemsSource="{Binding Path=SelectedTypeRuleSet>
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate DataType="{x:Type engine:RuleSet}"
                                          ItemsSource="{Binding Path=Rules}">
                    <StackPanel>
                        <TextBlock Text="{Binding Path=Name}"/>
                        <TextBlock Text="{Binding Path=TargetType}"/>
                    </StackPanel>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
    </TreeView>
    

    第一个节点是
    规则集
    ,子节点是
    规则库
    。因此,第一个相关项是:带有规则的规则集(一对多关系),然后我们有:规则-规则(一对多关系)。我可以在TreeView中看到规则集。层次结构是TreeView项的模板,tree view allready已分配项资源…Htmplate似乎共享它…一个问题:根元素
    规则A
    是否是
    规则集类型的唯一项
    ?否(我的错误-“绘制错误”->在发布时出错)。层次结构是:1规则集(但我把它作为一个集合,其中有一个项,以便能够将它作为第一层次结构的数据源)。因此,1个规则集有(1..n)个规则,每个规则可以有(1..n)个其他规则,因此,您可以绘制一个更大的示例树,其中包含后面每个节点的类型吗?
    <UserControl.Resources>
            <HierarchicalDataTemplate x:Key="RuleBaseTemplate"
                                      ItemsSource="{Binding Rules}">
                <TextBlock Text="{Binding Name}"/>
            </HierarchicalDataTemplate>
    
            <HierarchicalDataTemplate x:Key="RuleSetTemplate" 
                                      ItemsSource="{Binding Rules}" 
                                      ItemTemplate="{StaticResource RuleBaseTemplate}">
                <StackPanel>
                    <TextBlock Text="{Binding Name}"/>
                    <TextBlock Text="{Binding TargetType}"/>
                </StackPanel>
            </HierarchicalDataTemplate>
    </UserControl.Resources>
    <!-- rest of the code -->
    <TreeView x:Name="ruleSetTree" Margin="0,10,0,0" 
              ItemsSource="{Binding SelectedTypeRuleSet}"
              ItemTemplate="{StaticResource RuleSetTemplate}"/>