.net 以编程方式禁用/启用WPF上下文菜单项
当.net 以编程方式禁用/启用WPF上下文菜单项,.net,wpf,contextmenu,.net,Wpf,Contextmenu,当上下文菜单中有分隔符时,如何以编程方式修改特定的上下文菜单菜单项 在父控件中,我有 ContextMenuOpening="ModifyItems" 上下文菜单是 <ContextMenu > <MenuItem Header="Item1" Tag="SomeTag" /> <Separator /> <MenuItem Header="Item2" />
上下文菜单中有分隔符时,如何以编程方式修改特定的上下文菜单
菜单项
在父控件中,我有
ContextMenuOpening="ModifyItems"
上下文菜单是
<ContextMenu >
<MenuItem Header="Item1" Tag="SomeTag" />
<Separator />
<MenuItem Header="Item2" />
</ContextMenu>
我遇到了一个例外:
无法将“System.Windows.Controls.Separator”类型的对象强制转换为“System.Windows.Controls.MenuItem”类型
如何解决此问题?您需要检查该项是否为菜单项:
For Each i In cm.Items
If TypeOf i Is MenuItem Then
Dim mi = CType(i, MenuItem)
If CType(mi.Tag, String) = "SomeTag" Then
mi.IsEnabled = IsEnabled()
End If
End If
Next mi
For Each i In cm.Items
If TypeOf i Is MenuItem Then
Dim mi = CType(i, MenuItem)
If CType(mi.Tag, String) = "SomeTag" Then
mi.IsEnabled = IsEnabled()
End If
End If
Next mi