wpf treeview的各treeviewitem右键弹出的菜单选项不同
要实现WPF TreeView 的每个 TreeViewItem 弹出不同的右键菜单选项,你可以使用 ContextMenu 控件并将其设置为 TreeViewItem 的 ContextMenu 属性。
首先,在 XAML 中定义多个 ContextMenu 控件,每个控件包含不同的菜单选项。然后,在 TreeView 的 ItemContainerStyle 中为每个 TreeViewItem 设置对应的 ContextMenu。
以下是一个示例代码:
<TreeView>
<TreeView.Resources>
<ContextMenu x:Key="Menu1">
<MenuItem Header="Option A" />
<MenuItem Header="Option B" />
</ContextMenu>
<ContextMenu x:Key="Menu2">
<MenuItem Header="Option C" />
<MenuItem Header="Option D" />
</ContextMenu>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="ContextMenu" Value="{StaticResource Menu1}" />
<Style.Triggers>
<DataTrigger Binding="{Binding SomeProperty}" Value="SomeValue">
<Setter Property="ContextMenu" Value="{StaticResource Menu2}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<!-- TreeViewItems go here -->
</TreeView>
在上面的示例中,我们定义了两个 ContextMenu 控件 Menu1 和 Menu2,分别包含不同的菜单选项。然后在 TreeView 的 ItemContainerStyle 中根据条件为每个 TreeViewItem 设置不同的 ContextMenu。当 TreeViewItem 的 SomeProperty 属性值为 SomeValue 时,将显示 Menu2;否则显示 Menu1。
通过这种方法,你可以实现 WPF TreeView 的每个 TreeViewItem 弹出不同的右键菜单选项。