Radtreeview使其只在某层节点上显示右键菜单(telerik控件)
2012-10-31 21:22
381 查看
<Control.Resources>
<telerik:RadContextMenu x:Key="ContextMenu">
<telerik:RadMenuItem Header="样品清点" Click="SampleCheck_Click" />
<telerik:RadMenuItem Header="样品室内描述" Click="SampleStationDes_Click" />
<telerik:RadMenuItem Header="室内样品" Click="SampleIndoorDescription_Click" />
<telerik:RadMenuItem Header="添加样品" Click="AddSample_Click" />
</telerik:RadContextMenu>
<DataTemplate x:Key="Station">
<TextBlock Text="{Binding Name}" Width="120" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</DataTemplate>
<HierarchicalDataTemplate x:Key="Leg" ItemTemplate="{StaticResource Station}" ItemsSource="{Binding Stations}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="Voyage" ItemTemplate="{StaticResource Leg}" ItemsSource="{Binding Legs}">
<TextBlock Text="{Binding Code}"/>
</HierarchicalDataTemplate>
<Style x:Key="VoyageItemContainerStyle" TargetType="{x:Type telerik:RadTreeViewItem}">
<Setter Property="DefaultImageSrc" Value="sailing-ship-icon.png"/>
</Style>
<Style x:Key="LegItemContainerStyle" TargetType="{x:Type telerik:RadTreeViewItem}">
<Setter Property="DefaultImageSrc" Value="Leg-icon.png"/>
</Style>
<Style x:Key="StationItemContainerStyle" TargetType="{x:Type telerik:RadTreeViewItem}">
<Setter Property="DefaultImageSrc" Value="Station-icon.png" />
<Setter Property="telerik:RadContextMenu.ContextMenu" Value="{StaticResource ResourceKey=ContextMenu}" />
<EventSetter Event="TreeViewItem.PreviewMouseRightButtonDown" Handler="TreeViewItemStation_PreviewMouseRightButtonDown"/>
</Style>
<Local:TreeExplorerContainStyleSelector x:Key="myContainerStyleSelector"
VoyageStyle="{StaticResource VoyageItemContainerStyle}"
LegStyle="{StaticResource LegItemContainerStyle}"
StationStyle="{StaticResource StationItemContainerStyle}"/>
</Control.Resources>
<Grid>
<telerik:RadTreeView x:Name="ExplorerTreeView"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
IsRootLinesEnabled="True"
MinHeight="200"
IsLoadOnDemandEnabled="True"
ImagesBaseDir="/Images/Icons/"
BorderBrush="SkyBlue"
BorderThickness="2"
ItemsSource="{Binding TreeExplorerDataSource, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemTemplate="{StaticResource Voyage}"
ItemPrepared="ExplorerTreeView_ItemPrepared"
ItemContainerStyleSelector="{StaticResource myContainerStyleSelector}"
LoadOnDemand="ExplorerTreeView_LoadOnDemand">
</telerik:RadTreeView>
</Grid>
</UserControl>
使用系统自带的contextmenu则需要在treeview上绑定,并在后台控制。
<telerik:RadContextMenu x:Key="ContextMenu">
<telerik:RadMenuItem Header="样品清点" Click="SampleCheck_Click" />
<telerik:RadMenuItem Header="样品室内描述" Click="SampleStationDes_Click" />
<telerik:RadMenuItem Header="室内样品" Click="SampleIndoorDescription_Click" />
<telerik:RadMenuItem Header="添加样品" Click="AddSample_Click" />
</telerik:RadContextMenu>
<DataTemplate x:Key="Station">
<TextBlock Text="{Binding Name}" Width="120" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</DataTemplate>
<HierarchicalDataTemplate x:Key="Leg" ItemTemplate="{StaticResource Station}" ItemsSource="{Binding Stations}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="Voyage" ItemTemplate="{StaticResource Leg}" ItemsSource="{Binding Legs}">
<TextBlock Text="{Binding Code}"/>
</HierarchicalDataTemplate>
<Style x:Key="VoyageItemContainerStyle" TargetType="{x:Type telerik:RadTreeViewItem}">
<Setter Property="DefaultImageSrc" Value="sailing-ship-icon.png"/>
</Style>
<Style x:Key="LegItemContainerStyle" TargetType="{x:Type telerik:RadTreeViewItem}">
<Setter Property="DefaultImageSrc" Value="Leg-icon.png"/>
</Style>
<Style x:Key="StationItemContainerStyle" TargetType="{x:Type telerik:RadTreeViewItem}">
<Setter Property="DefaultImageSrc" Value="Station-icon.png" />
<Setter Property="telerik:RadContextMenu.ContextMenu" Value="{StaticResource ResourceKey=ContextMenu}" />
<EventSetter Event="TreeViewItem.PreviewMouseRightButtonDown" Handler="TreeViewItemStation_PreviewMouseRightButtonDown"/>
</Style>
<Local:TreeExplorerContainStyleSelector x:Key="myContainerStyleSelector"
VoyageStyle="{StaticResource VoyageItemContainerStyle}"
LegStyle="{StaticResource LegItemContainerStyle}"
StationStyle="{StaticResource StationItemContainerStyle}"/>
</Control.Resources>
<Grid>
<telerik:RadTreeView x:Name="ExplorerTreeView"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
IsRootLinesEnabled="True"
MinHeight="200"
IsLoadOnDemandEnabled="True"
ImagesBaseDir="/Images/Icons/"
BorderBrush="SkyBlue"
BorderThickness="2"
ItemsSource="{Binding TreeExplorerDataSource, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemTemplate="{StaticResource Voyage}"
ItemPrepared="ExplorerTreeView_ItemPrepared"
ItemContainerStyleSelector="{StaticResource myContainerStyleSelector}"
LoadOnDemand="ExplorerTreeView_LoadOnDemand">
</telerik:RadTreeView>
</Grid>
</UserControl>
使用系统自带的contextmenu则需要在treeview上绑定,并在后台控制。
相关文章推荐
- C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
- C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
- CTreeCtrl 右键选中节点并显示菜单
- C# 树的不同节点显示不同的右键菜单
- MFC TreeCtrl树形控件中限定右键点击节点弹出菜单
- CTreeCtrl 右键选中节点并显示菜单
- 在Telerik for silverlight控件radtreeview中如何通过路径得到节点(转载)
- TreeList 右击节点时才显示右键菜单,并使该节点获得焦点
- 在Telerik for silverlight控件radtreeview中如何选中先后、兄弟、父母节点
- c# 右键单击 treeview 控件, 显示菜单 以及 从一个 form 调用 另一个form
- 在Telerik for silverlight控件radtreeview中如何通过路径得到节点
- win7系统的右键菜单只显示一个白色框不显示菜单项 解决办法
- PyQt4在TextEdit控件中创建右键菜单
- TreeList控件右键菜单功能的实现
- mini-treegrid控件怎么懒加载时,默认不展开子节点,只显示以及目录
- 上接扩展GridView控件(9) - 给数据行增加右键菜单
- 在WPF里面获取右键弹出菜单(ContextMenu)的鼠标点击源(Owner)控件
- Developer Express右键菜单显示汉化
- WPF如何后台动态添加控件的右键菜单
- C#/VB.NET判断右键弹出菜单的来源控件(从哪个控件弹出来的)