给GridControl的行数据单元格添加菜单项,并通过Command绑定的方式实现菜单点击动作触发:

                    <dxg:GridControl x:Name="mainGrid" ItemsSource="{Binding TableDataSource}">
<dxg:GridColumn Header="A" FieldName="A"/>
<dxg:GridColumn Header="B" FieldName="B"/>
<dxg:GridColumn Header="C" FieldName="C"/>
<dxg:GridColumn Header="D" FieldName="D"/>
<dxg:GridColumn Header="E" FieldName="E"/>
<dxg:GridControl.View>
<dxg:TableView x:Name="tvTable" ShowGroupPanel="False" AllowColumnFiltering="False"
AllowedGroupFilters="None" AllowGrouping="False"
ShowIndicator="False" AllowSorting="False"
AllowEditing="False" AllowFilterEditor="False">
<dxg:TableView.RowCellMenuCustomizations>
<dxb:BarButtonItem Name="DataHeader"
Content="数据头"
Command="{Binding Path=(dxg:DataControlBase.ActiveView).DataContext.SetDataHeaderCommand, RelativeSource={RelativeSource Self}}"
CommandParameter="{Binding ElementName=tvTable, Path=FocusedRowHandle}" >
</dxb:BarButtonItem>
<dxb:BarButtonItem Name="DataBegin" Content="数据开始"
Command="{Binding Path=DataContext.SetDataBeginCommand,ElementName=mainGrid}"
CommandParameter="{Binding ElementName=tvTable, Path=FocusedRowHandle}">
</dxb:BarButtonItem>
</dxg:TableView.RowCellMenuCustomizations>
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>

上面的两个命令绑定分别使用两种方式实现DataContext的绑定:

注:前提条件是:待绑定的Command和需要寻找的元素的DataContext是同一个才适用。

1. 通过 DataControlBase.ActiveView 附加属性来将当前命令的上下文绑定到  tvTable 的数据上下文上;

Command="{Binding Path=(dxg:DataControlBase.ActiveView).DataContext.SetDataHeaderCommand, RelativeSource={RelativeSource Self}}"

2. 通过 定义 ElementName 的当时,寻找指定元素的DataContext作为数据上下文绑定的方式:

Command="{Binding Path=DataContext.SetDataBeginCommand,ElementName=mainGrid}"

方式二也是一般常用方式,适用于多层级的子元素的数据上下文绑定。

注意:不管是方式一还是方式二,“DataContext” 都不能少,否则会提示找不到对应的 Command;

RowCellMenuCustomizations 实现 Command 绑定的更多相关文章

  1. elementui command绑定变量对象方法

    command绑定变量对象方法 使用v-bind : command绑定 简写 :command

  2. MVVM中轻松实现Command绑定(三)任意事件的Command

    WPF中不是所有的控件都有Command属性的,如果窗体我需要在ViewModel中处理Loaded事件命令,或者其他事件的命令时,很难都过绑定Command完成,必须要注册依赖属性或事件等,太麻烦了 ...

  3. WPF ItemsControl Command 绑定操作

    视图模型: using System.Collections.ObjectModel; using System.Diagnostics; using System.Windows.Input; us ...

  4. WPF ListboxItem 双击事件 Command绑定

    <ListBox x:Name="Lb" HorizontalAlignment="Left" Height="600" Vertic ...

  5. MVVM中轻松实现Command绑定任意事件的Command

    下面是“银光中国”(不错的WPF或SL网站)WPF学习教程中的一个连接, http://www.silverlightchina.net/html/study/WPF/2011/0715/9034.h ...

  6. WPF中的Command事件绑定

    在项目中使用Command绑定能够使我们的代码更加的符合MVVM模式.不了解的同学可能不清楚,只有继承自ButtonBase类的元素才可以直接绑定Command(Button.CheckBox.Rad ...

  7. WPF中DataGrid控件内Button的Command和CommandParameter的绑定

    场景:视频上传功能,上传列表使用DataGrid控件,视频有不同的状态对应不同的操作,DataGrid中最后一列为操作列,里面是Button控件.希望点击Button后执行对应的操作,但是设置Butt ...

  8. Command Pattern 命令模式

    定义: 命令模式将‘请求’封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象,命令模式也支持可撤销的操作. 类图 如上图所示:Command类是用来声明执行操作的接口:ConcreteCom ...

  9. WPF EventSetter Handler Command

    最近做一个工具,突然发现ListBox和ListView等列表控件的MouseDoubleClick事件有时候是获取不到当前双击的行对象数据的,比如这样写: <ListBox Grid.Row= ...

  10. 说不尽的MVVM(4) – 发号施令的Command

    知识预备 阅读本文,我假定你具备以下知识: C# WPF基础知识 知道WPF的命令 WPF相对WinForm加了一种Command的机制,对用户的操作进行更加灵活的处理,相信很多朋友知道并用过Rout ...

随机推荐

  1. java集合【10】——— LinkedList源码解析

    1.LinkedList介绍 我们除了最最常用的ArrayList之外,还有LinkedList,这到底是什么东西?从LinkedList官方文档,我们可以了解到,它其实是实现了List和Queue的 ...

  2. S2P销讯通-SFE人才对企业管理层至关重要

    SFE这一概念,最初由外资企业引入,如今已逐渐被内资企业所采纳并融入其组织结构中,不少企业正积极构建这一部门. 1 我们观察到,近两年企业内对于SFE部门所需的人才需求急剧上升.这一部门,在外资企业中 ...

  3. Windows系统安装使用Scoop包管理器

        前言 Scoop是Windows的命令行安装程序. 如果用过Linux系统,使用apt-get工具安装过软件,或者用过Python,知道pip工具用于管理Python各种依赖包,那么理解Sco ...

  4. 人工智能大语言模型起源篇,低秩微调(LoRA)

    上一篇: <规模法则(Scaling Law)与参数效率的提高> 序言:您在找工作时会不会经常听到LoRA微调,这项技术的来源就是这里了. (12)Hu.Shen.Wallis.Allen ...

  5. PM-如何优雅的抄袭代码?世上所有代码都是一大抄

    你借了我的思想,在我的思想上,发展出一套理好的思想. 你借了我的代码,在我的代码上,开发出一套理好的代码.   你们知道程序员最熟悉,最熟练,最常用的两个快捷键是哪两个吗?没错,估计你现在心中所想的就 ...

  6. helm values reference other values

    https://helm.sh/docs/chart_template_guide/yaml_techniques/#yaml-anchors https://helm.sh/zh/docs/char ...

  7. Git commit - Angular Convention

    使用 Git 的开发者会使用 git commit 进行代码提交,也会使用 -m 提交commit message.对于一些个人开发者,也许他们会觉得"这是我个人的项目,不用太在意git c ...

  8. IDEA和GIT关于文件中LF和CRLF问题

    问题描述:项目软件安装shell脚本上git仓库管理,但拉取后,上linux运行报错. 问题思考:根据描述信息可以查看到\r字样,初步判别为换行符导致 1.将脚本文件移动至notepad++中,通过视 ...

  9. Qt/C++编写视频监控系统82-自定义音柱显示

    一.前言 通过音柱控件实时展示当前播放的声音产生的振幅的大小,得益于音频播放组件内置了音频振幅的计算,可以动态开启和关闭,开启后会对发送过来的要播放的声音数据,进行运算得到当前这个音频数据的振幅,类似 ...

  10. Qt编写可视化大屏电子看板系统32-模块10大屏地图

    一.前言 大屏地图模块采用浏览器模块+echart组件,Qt自带了webkit或者webengine模块,其中在win上mingw编译器的Qt5.6以后的版本,没有了浏览器模块,这个就需要用第三方的浏 ...