通过Code Behind的方式,为DataGrid内的Button绑定事件
2011-05-17 16:40
239 查看
在Silverlight中,通常为DataGrid内的Button绑定单击事件,只需要在Button的内联属性Click上添加事件方法即可。
这次由于实现的原因,需要将这一事件绑定的过程通过Code Behind的方式来绑定。
实现原理:
借助DataGrid的LoadingRow事件,在初始化DataGrid过程中,使用GetCellContent方法,来得到某一列的控件。
关键代码:
举一反三:
了解到DataGrid的LoadingRow事件后,在这里面也可以追加对控件的一些特殊控制的代码。比如得到该行DataContext后,根据
属性值来控制控件的内容或显示等等其他属性,替代一些需要用Converter来做的事情。
<sdk:DataGrid Name="grd"> <sdk:DataGrid.Columns> <sdk:DataGridTemplateColumn Header="" Width="50" > <sdk:DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Name="btnUpdateNum" CommandParameter="{Binding account}" Content="変更" Visibility="{Binding itemAttr, Converter={StaticResource BtnUpdateConverter}}"/> </DataTemplate> </sdk:DataGridTemplateColumn.CellTemplate> </sdk:DataGridTemplateColumn> </sdk:DataGrid.Columns> </sdk:DataGrid>
这次由于实现的原因,需要将这一事件绑定的过程通过Code Behind的方式来绑定。
实现原理:
借助DataGrid的LoadingRow事件,在初始化DataGrid过程中,使用GetCellContent方法,来得到某一列的控件。
关键代码:
private void grd_LoadingRow(object sender, DataGridRowEventArgs e) { Button btnUpdateNum = this.grd.Columns[4].GetCellContent(e.Row).FindName("btnUpdateNum") as Button; btnUpdateNum.Click += new RoutedEventHandler(btnUpdateNum_Click); } private void btnUpdateNum_Click(object sender, RoutedEventArgs e) { //TODO something }
举一反三:
了解到DataGrid的LoadingRow事件后,在这里面也可以追加对控件的一些特殊控制的代码。比如得到该行DataContext后,根据
属性值来控制控件的内容或显示等等其他属性,替代一些需要用Converter来做的事情。
相关文章推荐
- HTML中几种为<button>绑定点击事件的方式比较
- HTML中几种为<button>绑定点击事件的方式比较
- notification里一个button如何绑定事件
- js中绑定事件的三种方式
- jQuery绑定事件的四种方式
- Silverlight中使用MVVM(7):DataGrid中触发Button的Click事件
- Android学习笔记--控件事件绑定方式
- innerHtml动态生成button并绑定事件
- jQuery绑定事件的四种方式
- jQuery四种事件绑定方式.bind(),.live(),.delegate(),on()的区别
- jQuery绑定事件的四种方式:bind、live、delegate、on
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
- HTML中绑定点击事件的方式
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式 [转载]
- jQuery三种事件绑定方式.bind(),.live(),.delegate()原理对比
- 映射方式绑定不同的事件
- jQuery四种事件绑定方式.bind(),.live(),.delegate(),on()的区别
- DataGrid系列技巧(导出excel,事件,多种方式呈现数据,全选全删)等等等
- asp.net C#动态添加创建生成button按钮控件没有触发执行响应click绑定事件处理