给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. OSG开发笔记(三十五): OsgUtil::Optimizer:优化场景策略,提升显示性能和渲染效率

    前言   在OSG中,osgUtil::Optimizer是一个非常重要的工具类,它提供了一系列优化场景图的方法,以提高渲染性能和效率.   Demo      在笔者的pc上,优化前优化后渲染交互没 ...

  2. Python 潮流周刊#79:Python 的元数据困境(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  3. 超详细!SED流编辑器从入门到精通

    在文本处理的世界里,SED流编辑器宛如一把瑞士军刀,功能强大且实用.无论是处理海量数据文件,还是批量修改配置文件,SED都能展现出其独特的魅力.今天,就让我们一同深入探索SED的奇妙世界,掌握其基础知 ...

  4. 『玩转Streamlit』--表单Form

    在Streamlit中,Form组件是一种特殊的UI元素,允许用户输入数据而不立即触发应用的重新运行. 这对于创建需要用户输入多个参数后再进行处理的交互式表单非常有用. 1. 概要 Form组件的主要 ...

  5. 使用Maps SDK添加本地slpk

    SceneView m_sceneView; public void LoadSceneLayerFromSLPK(SceneView sceneView, string slpkPath) { if ...

  6. 关于 Span 的一切:探索新的 .NET 明星: 3.什么是 Memory<T>,以及为什么你需要它?

    3. 什么是 Memory<T>,以及为什么你需要它? 1. Span<T> 是什么? 2. Span<T> 是如何实现的? 3. 什么是 Memory<T& ...

  7. 【MyBatis】学习笔记10:添加功能获取自增的主键

    [Mybatis]学习笔记01:连接数据库,实现增删改 [Mybatis]学习笔记02:实现简单的查 [MyBatis]学习笔记03:配置文件进一步解读(非常重要) [MyBatis]学习笔记04:配 ...

  8. helm values reference other values

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

  9. Spring RestTemplete支持Https安全请求

    实现步骤 Step1: 自定义ClientHttpRequestFactory package com.example.demo.https; import org.springframework.h ...

  10. Qt编写机器码秘钥控制/日期防篡改/离线使用/硬件标识/运行时间/数量控制/批量更新秘钥

    一.前言说明 搞软件开发一直追求精益求精的目标,从第一版的秘钥生成器到今天这个版本,经历了十年的时间,最初的版本做的非常简陋,就是搞了个异或加密,控制运行时间,后面又增加设备数量的控制,然后就是到期时 ...