Silverlight中使用MVVM:DataGrid中触发Button的Click事件
方法1、使用RelativeSource向上查找DataContext中的命令,但是需要注意的是命令绑定需要写全 类似: DataContext.ReLoadCommand
<Button Grid.Column="1" Command="{Binding DataContext.ReLoadCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"Content="刷新" />
红色字是关键。
方法2、在Prism的官方文档中给了一个不错的解决办法,
{Binding DataContext.XXXCommand, ElementName=DataGrid1},
DataGrid1就是外面的DataGrid。
如果外部父控件是DataGrid时,有时无法用上面的方法实现,可以采用下面的方法:
<sdk:DataGridTemplateColumn Header="单号" Width="100">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<HyperlinkButton x:Name="myHyperlinkButton" Content="{Binding XXXX, Mode=TwoWay}" Foreground="Blue" VerticalAlignment="Center"
Command="{Binding DataContext.MyCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"
CommandParameter="{Binding ElementName=myHyperlinkButton}"/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
ViewModel写法
public ICommand MyCommand{
get{
return new RelayCommand<object>((param) =>
{
var ctrl = param as HyperlinkButton;
ctrl.DataContext as Model//(转为实体类)
其他操作......
});
}
}
Silverlight中使用MVVM:DataGrid中触发Button的Click事件的更多相关文章
- Silverlight 后台利用代码触发 Button 的Click事件
页面上一个查询按钮,当用户点击 回车键 的时候 处罚查询按钮的onclick事件 public MainPage() { InitializeComponent(); this.KeyDown += ...
- 解决jQuery中dbclick事件触发两次click事件
首先感谢这位小哥!http://qubernet.blog.163.com/blog/static/1779472842011101505853216/ 太长姿势了. 在jQuery事件绑定中,dbc ...
- Asp.Net回车键触发Button的OnClick事件解决方案
在aspx页面有textbox文本框,还有三个button按钮.启用textbox的TextChanged事件和button的click事件. 问题: 现在在textbox文本框输入完数据按“回车”后 ...
- Xamarin for android:为button设置click事件的几种方法
原文:Xamarin for android:为button设置click事件的几种方法 在Xamarin中一个最基础的事情,就是为一个button指定click事件处理方法,可是即使是这么一件事也有 ...
- Button的Click事件与js函数的两种不同顺序触发方式
先运行js.或者先运行Click事件,近期就遇到了这个问题,開始弄了两个button分别运行,那才叫一个蛋疼... 1.先运行js,再运行Button的Click函数 <asp:Button I ...
- 网页中,鼠标点击与javascript的click事件怎么区分处理
就下面问题发现另一个方式: js代码: <script> //IE if(document.all) { document.getElementById("clickme&quo ...
- 【WPF】代码触发Button点击事件
先定义Button按钮并绑定事件. public void test() { Button btn = new Button(); btn.Click += Btn_Click; } private ...
- 解 自己关于 C# Button的Click事件的疑惑
先说说C#中事件的用法,从事件的用法中,我自己会产生一个疑惑 C#事件 class Program { static void Main(string[] args) { EventClass ec ...
- wpf mvvm datagrid 中button绑定命令方法
<DataGridTemplateColumn Header="设备状态" IsReadOnly="True" Width="150" ...
随机推荐
- 【转】提高C#编程水平的50个要点
1.总是用属性 (Property) 来代替可访问的数据成员2.在 readonly 和 const 之间,优先使用 readonly3.在 as 和 强制类型转换之间,优先使用 as 操作符4.使用 ...
- java多线程系列7-停止线程
本文主要总结在java中停止线程的方法 在java中有以下三种方法可以终止正在运行的线程: 1.使用退出标志 2.使用stop方法强行终止线程,但是不推荐,因为stop和suspend.resume一 ...
- 【读书笔记】iOS-写代码注意事项
一,我是尽早和经常编译的强烈支持者.通常,在写完每个方法或有点难度的代码后,都要尝试进行构建.这是一个好习惯,因为如果在上次成功编译以来添加的代码量很小,那么可以非常容易地缩小编译错误范围.这个方法还 ...
- iOS 利用长按手势移动 Table View Cells
本文译自:Cookbook: Moving Table View Cells with a Long Press Gesture 目录: 你需要什么? 如何做? 如何将其利用至UICollection ...
- 朝花夕拾-android 从手机选择图片或拍照设置头像
Demo源码位置:http://git.oschina.net/zj2012zy/Android-Demo/tree/master/AndroidDemo/headset 一般需要用户信息的好多的也需 ...
- Burp Suite安装及详细使用教程-Intruder模块详解
01 介绍 安装要求: Java 的V1.5 + 安装( 推荐使用最新的JRE ), 可从这里免费 http://java.sun.com/j2se/downloads.html Burp Suite ...
- 由IP和掩码计算广播地址
public static IPAddress GetBroadcast(IPAddress ipAddress, IPAddress subnetMask) { var ip = ipAddress ...
- jQuery无刷新上传之uploadify简单试用
先简单的侃两句:貌似已经有两个月的时间没有写过文章了,不过仍会像以前那样每天至少有一至两个小时是泡在园子里看各位大神的文章.前些天在研究“ajax无刷新上传”方面的一些插件,用SWFUpload实现了 ...
- 烂泥:CentOS安装及配置TFTP服务器
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 为什么要学习有关TFTP服务器的安装及配置呢?主要是为了后续学习有关linux系统的无人值守安装做准备. TFTP简单文件传输协议,使用UDP的69端口 ...
- spring mvc 配置文件拦截器过滤url
最近在用spring mvc拦截器,sprin 版本号4.0.6.RELEASE, <mvc:interceptor> <mvc:mapping path="/admin/ ...