在ContextMenu中为MenuItem设置CommandTarget,可以通过以下步骤实现:
using System.Windows.Input;
using System.Windows.Controls;
<MenuItem Header="MenuItem1" Command="{Binding MenuItemCommand}" CommandTarget="{Binding ElementName=MyControl}"/>
</ContextMenu><TextBox x:Name="MyControl" ContextMenuOpening="MyControl_ContextMenuOpening"/>
public ICommand MenuItemCommand { get; set; }
public MyViewModel()
{
MenuItemCommand = new RelayCommand<object>(MenuItemCommandExecute);
}
private void MenuItemCommandExecute(object parameter)
{
var control = parameter as Control;
if (control != null)
{
// 在这里执行你的逻辑
}
}
private void MyControl_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
// 在这里设置CommandTarget的值
var menuItem = (MenuItem)MyControl.ContextMenu.Items[0];
menuItem.CommandTarget = MyControl;
}
这样,在ContextMenu中为MenuItem设置CommandTarget的问题就解决了。
领取专属 10元无门槛券
手把手带您无忧上云