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