如何显示TreeView项上下文菜单中的WPF一个分层数据模板 [英] How to display context menu for treeview item in a hierarchial data template in wpf
本文介绍了如何显示TreeView项上下文菜单中的WPF一个分层数据模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用WPF的分层数据模板显示上下文菜单树视图项目?如何只为CountryTemplate显示上下文菜单:
< HierarchicalDataTemplate X:键=DispTemplate>
< StackPanel的方向=横向>
< TextBlock的文本={绑定路径=标签}样式={StaticResource的TreeTextStyle}工具提示={绑定路径=说明}标记={绑定路径=标签}>
< / TextBlock的>
< / StackPanel的>
< / HierarchicalDataTemplate>
< HierarchicalDataTemplate X:键=BuildingTemplate的ItemsSource ={绑定路径=大厦}的ItemTemplate ={StaticResource的BuildingTemplate}>
< StackPanel的方向=横向>
< TextBlock的文本={绑定路径=标签}样式={StaticResource的TreeTextStyle}工具提示={绑定路径=说明}/>
< / StackPanel的>
< / HierarchicalDataTemplate>
< HierarchicalDataTemplate X:键=CityTemplate的ItemsSource ={绑定路径=城市}的ItemTemplate ={StaticResource的CityTemplate}>
< StackPanel的方向=横向>
< TextBlock的文本={绑定路径=标签}样式={StaticResource的TreeTextStyle}工具提示={绑定路径=说明}/>
< / StackPanel的>
< / HierarchicalDataTemplate>
< HierarchicalDataTemplate X:键=CountryTemplate的ItemsSource ={绑定路径=国家}的ItemTemplate ={StaticResource的CountryTemplate}>
< StackPanel的方向=横向>
< TextBlock的文本={绑定路径= ROOTNAME}风格={StaticResource的TreeTextStyle}工具提示={绑定路径=说明}/>
< / StackPanel的>
< / HierarchicalDataTemplate>
解决方案
您还可以添加文本菜单
来的数据模板任何视觉的孩子,如:
< HierarchicalDataTemplate X:关键=CountryTemplate的ItemsSource ={绑定路径=国家}的ItemTemplate ={StaticResource的CountryTemplate}>
< StackPanel的方向=横向>
< StackPanel.ContextMenu>
<&文本菜单GT;
<菜单项标题=页眉命令={绑定命令}/> <! - 此命令应该是在数据上下文(每个国家项目) - >
< /文本菜单>
< /StackPanel.ContextMenu>
< TextBlock的文本={绑定路径= ROOTNAME}风格={StaticResource的TreeTextStyle}工具提示={绑定路径=说明}/>
< / StackPanel的>
< / HierarchicalDataTemplate>
How to display context menu for tree view item in wpf using the hierarchical data template? How to display context menu only for CountryTemplate:
<HierarchicalDataTemplate x:Key="DispTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Label}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}" Tag="{Binding Path=Tag}">
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="BuildingTemplate" ItemsSource="{Binding Path=Building}" ItemTemplate="{StaticResource BuildingTemplate}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Label}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}"/>
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="CityTemplate" ItemsSource="{Binding Path=City}" ItemTemplate="{StaticResource CityTemplate}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Label}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}"/>
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="CountryTemplate" ItemsSource="{Binding Path=Country}" ItemTemplate="{StaticResource CountryTemplate}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=RootName}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}"/>
</StackPanel>
</HierarchicalDataTemplate>
解决方案
You also can add the ContextMenu
to any visual child in the data template, for instance:
<HierarchicalDataTemplate x:Key="CountryTemplate" ItemsSource="{Binding Path=Country}" ItemTemplate="{StaticResource CountryTemplate}">
<StackPanel Orientation="Horizontal">
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="Header" Command="{Binding Command}"/> <!--This command should be in the data context (each country item)-->
</ContextMenu>
</StackPanel.ContextMenu>
<TextBlock Text="{Binding Path=RootName}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}"/>
</StackPanel>
</HierarchicalDataTemplate>
这篇关于如何显示TreeView项上下文菜单中的WPF一个分层数据模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文