wpf--鼠标右键菜单中的command命令实现

amourjun amourjun     2022-08-24     438

关键词:

一个功能,在ListView中的ListBoxItem控件上实现右键菜单关闭选项,将该ListBoxItem从ListView中删除。

利用 RoutedCommand类创建Command命令,MSDN上将其定义为一个实现 ICommand 并在元素树之内进行路由的命令。

 

C#代码:

 private RoutedCommand closeCmd = new RoutedCommand("Clear", typeof(MainWindow));
private void ListBoxItem_MouseRightButtonUp(object sender,MouseButtonEventArgs e)
        {
            
                ListBoxItem data = new ListBoxItem();
                data = (ListBoxItem)sender;
                
                MenuItem close = new MenuItem();
                close.Header = "删除";

                //声明Mycommand实例                
                close.Command = closeCmd;
                closeCmd.InputGestures.Add(new KeyGesture(Key.D, ModifierKeys.Alt));   //添加快捷键
                close.CommandTarget = data;   //命令作用目标

                CommandBinding cb = new CommandBinding();
                cb.Command = closeCmd;
                cb.CanExecute += cb_CanExecute;
                cb.Executed += cb_Executed;
                data.CommandBindings.Add(cb);
                 
                data.ContextMenu = new ContextMenu();
                data.ContextMenu.Items.Add(close);
                data.ContextMenu.IsOpen = true; 
            
        }

        private void cb_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            ListBoxItem obj =(ListBoxItem)sender;
            this.listView.Items.Remove(obj);
            e.Handled = true;
        }

        private void cb_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            
            e.CanExecute = true;
            e.Handled = true;
        }

 

Command的其他实现方式可根据情况选择使用,这种实现方式方便于对UI界面中的元素进行操作。

wpf中的命令(command)

    这节来讲一下WPF中的命令(Command)的使用。【认识Command】    我们之前说过,WPF本身就为我们提供了一个基础的MVVM框架,本节要讲的命令就是其中一环,通过在ViewModel中声明命令,从View中使用Binding绑定命... 查看详情

2021-10-02wpf上位机54-mvvm模式中的鼠标行为与命令绑定(代码片段)

MVVM模式中的鼠标行为与命令绑定1、鼠标输入的命令绑定(InputBindings:)单击鼠标左键:LeftClick双击鼠标左键:LeftDoubleClick单击鼠标中键:MiddleClick双击鼠标中键:MiddleDoubleClick单击鼠标右键:RightClick双击鼠标右键:RightDoubleClick不执行任... 查看详情

wpf自定义快捷键命令(command)(转)

命令简介    WPF中的命令是通过实现 ICommand 接口创建的。ICommand公开两个方法(Execute 及 CanExecute)和一个事件(CanExecuteChanged)。Execute执行与命令关联的操作。CanExecute确定是否可以在当前命令目标... 查看详情

wpf根据指定条件显示或禁止listview中的每一项的右键菜单(代码片段)

昨天要做一个ListView的右键菜单,需要根据listView绑定的集合中每个对象里的一个bool属性来决定是否显示该项的右键菜单,经过不懈的尝试和努力,最终实现了两种方案,一种是当该值为false时,可以点出右键菜单,但菜单项置... 查看详情

深入浅出wpf-09.command(命令)01(代码片段)

命令1)命令系统的基本元素命令(Command),WPF的命令实际上就是实现了ICommand接口的类,平时使用最多的是RoutedCommand类命令源(CommandSource),即命令的发出者,是实现了ICommandSource接口的类,很多界面元素都实现了这个接口,... 查看详情

如何设置securecrt的鼠标右键为弹出文本操作菜单功能

参考技术A在使用的secureCRT的情况下,进行右键的时候,当进行选择界面中的内容之后,就会直接在命令行粘贴的内容。为了能右键能弹出菜单就需要进行设置,进行点击菜单中的options的选项菜单。弹出了下拉菜单中进行选择为... 查看详情

怎样设置鼠标右键菜单

参考技术A问题一:怎样将鼠标右键快捷功能进行自己设置?清除鼠标右键菜单中多余项的操作步骤如下:(1)在系统桌面上单击“开始→运行”项。(2)在随后出现的窗口中的“打开”栏中键入regedit并单击“确定”按钮运行... 查看详情

wpf事件实现mvvm中的command绑定(代码片段)

1.在ViewModel中弹出消息提示框,需要添加下面的代码块:<dxmvvm:Interaction.Behaviors><dx:DXMessageBoxService/></dxmvvm:Interaction.Behaviors>在ViewModel中的调用方式是:publicvirtualvoidShowRowDetails(SampleDataobj) 查看详情

怎样将鼠标右键菜单项设置成自动分栏显示?

我的鼠标右键加进了许多自定义菜单项,现在鼠标右键菜单项太长了,访问靠后的菜单要向下滚动很久,怎样将右键菜单设置成自动分栏显示?系统技巧鼠标右键菜单清理四招第一招:清理右键“新建”菜单由于不断地安装新的... 查看详情

电脑鼠标右键的新建菜单栏里面的菜单如何添加快捷键?

例如,鼠标右键+W+F等于新建文件夹,现在给它更改添加一下设置,比如说我想快速创建一个DOXC文档,那么可不可以通过自定义快捷键,鼠标右键+W+D来实现它呢?如图所示。网上一大堆教程,都是止步于如何添加右键新建里面的... 查看详情

wpf中的默认右键菜单中的复制粘贴剪贴等没有本地化的解决方式

...,可是系统默认的一些文字没有本地化,比方:TextBox的右键菜单中Cut,Paste。Copy没有本地。原因:机器装中.Netframework相应的Languagepack没有装。解决方法:比方.netframework4.0的languagepack的下载地址:id=23067">https://www.microsoft.com/en- 查看详情

wpf如何实现datagrid的右键出现选项菜单的功能

我想实现对DataGrid里的某行数据单击右键后能弹出一个菜单进行一些操作应该怎么实现呀?参考技术A用代码添加:<DataGrid.ContextMenu><ContextMenuName="cm"StaysOpen="true"><MenuItemHeader="File"/><MenuItemHeader=&... 查看详情

【wpf】command自定义命令

...术A在使用MVVM结构的WPF程序中,ViewModel对View的响应是通过Command(命令)来完成的。比如用户点了某个按键,使得与该按键相绑定的命令被触发,而该命令又是在ViewModel中被定义的,于是就完成了一次View对ViewModel的调用。WPF和C#... 查看详情

wpf托盘图标右键弹出的contextmenu如何关闭

...tMenu.IsOpen=true;这样来打开右键菜单。我想在弹出菜单后,鼠标点击其他位置时,菜单自动消失,请问怎么做?我的系统托盘里,其他软件图标都是右键点击后,弹出菜单,点击其他位置菜单消失。我只能实现右键点击弹出菜单,... 查看详情

wpf----命令(command)(代码片段)

一,自定义命令:1创建一个类的静态RoutedUICommand对象.并且在类初始化中创建该静态对象.本实列创建了该类和类中的静态对象.publicclassDataCommandsprivatestaticRoutedUICommandrequery;staticDataCommands()InputGestureCollectioninputs=newInputGestureCollection();in... 查看详情

使用注册表编辑win10鼠标右键菜单,详细解释(右键文件夹文件以及右键空白区域下三种情况)

...个新的key/键    在新key/键下新键一个名为"command"的键    将需要执行的命令修改为command键Default的值具体修改办法见1.2小节1.1注册表位置不同情形下的注册表位置如下情形  注册表位置右键空... 查看详情

js模拟点击鼠标右键

参考技术A前提是该元素已绑定事件如果没有事件,右键是系统默认的右键菜单因此,先给元素绑定个右键事件:再来模拟右键菜单如果要实现系统级的右键菜单,只能借助其他方法,比如使用pywin32的python实现鼠标右键 查看详情

将editplus添加到右键打开菜单

...中输入选项如下图所示在下拉菜单中新建Editplus项,新建Command在数值中输入程序的绝对地址,后加入%1然后鼠标单击右键 就可以看到自己加入的程序了。  查看详情