Silverlight DataGridTemplateColumn 中绑定事件
2012-11-16 11:19
603 查看
前段时间一直很忙,老板催得紧:(
从今天开始,陆续记录一些。
在Silverlight中,想实现DataGird中最后一列是自定义的操作按钮,并按照MVVM模式绑定DataGrid的数据源、按钮事件。
首先,初步想到的是这样子。
绑定代码:
当然,按钮事件绑定是无效的,在VS的输出窗口中,可以看到错误信息(程序不会弹出错误,所以养成看输出窗口很重要啊),提示在绑定的数据源实体类找不到“EditCommand”属性。
试了很多方法后,最后在Google中找到了解决方案:Command binding inside a DataGridTemplateColumn
改为:
从今天开始,陆续记录一些。
在Silverlight中,想实现DataGird中最后一列是自定义的操作按钮,并按照MVVM模式绑定DataGrid的数据源、按钮事件。
首先,初步想到的是这样子。
<sdk:DataGrid ItemsSource="{Binding AdjustCurves}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" AutoGenerateColumns="False" MinHeight="50" x:Name="dataGrid1" Visibility="{Binding IsShowList, Converter={StaticResource BooleanToVisibilityConverter1}}"> <sdk:DataGrid.Columns> <sdk:DataGridTextColumn Header="名称" Binding="{Binding CurveName}" IsReadOnly="True" MinWidth="120"/> <sdk:DataGridTemplateColumn Header="操作" > <sdk:DataGridTemplateColumn.CellTemplate> <DataTemplate> <HyperlinkButton Content="编辑" Command="{Binding EditCommand}" /> </DataTemplate> </sdk:DataGridTemplateColumn.CellTemplate> </sdk:DataGridTemplateColumn> </sdk:DataGrid.Columns> </sdk:DataGrid>
绑定代码:
private RelayCommand _editCommand; /// <summary> /// 编辑当前 /// </summary> public RelayCommand EditCommand { get { if (_editCommand == null) { _editCommand = new RelayCommand( () => MessageBox.Show("Edit")); } return _editCommand; } }
当然,按钮事件绑定是无效的,在VS的输出窗口中,可以看到错误信息(程序不会弹出错误,所以养成看输出窗口很重要啊),提示在绑定的数据源实体类找不到“EditCommand”属性。
试了很多方法后,最后在Google中找到了解决方案:Command binding inside a DataGridTemplateColumn
改为:
<HyperlinkButton Content="编辑" Command="{Binding Path=DataContext.EditCommand,RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}" />
相关文章推荐
- silverlight DataGridTemplateColumn 模板列 排序
- DataGridTemplateColumn 绑定可见属性
- Silverlight DataGrid DataGridTemplateColumn 单元格 列 对齐问题
- silverlight中DataGrid的滚动条绑定事件问题
- [原] Silverlight 3 DataGrid中定义列(DataGridTemplateColumn)
- Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果
- Silverlight DataGridTemplateColumn排序
- Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果
- Silverlight实用示例 - DataGrid行详细信息的绑定DataGrid.RowDetailsTemplate
- [WPF]DataGridTemplateColumn使用ComboBox绑定Dictionary细节记录
- Silverlight实用窍门系列:48.DataGrid行详细信息的绑定--DataGrid.RowDetailsTemplate【附带实例源码】
- Silverlight实用窍门系列:48.DataGrid行详细信息的绑定--DataGrid.RowDetailsTemplate
- wpf mvvm datagrid DataGridTemplateColumn的绑定无效的可能原因之一!
- easyui datagrid 编辑器绑定事件
- Silverlight DataGrid鼠标双击事件
- 稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 绑定数据到ListBox
- 通过 IDictionary对Silverlight DataGrid 进行动态数据绑定
- Silverlight学习笔记一:DataGrid如何处理鼠标的滚轮事件
- MVVM-Light模式,在dataGrid的模板下,绑定事件不触发的原因已经服务端排序的实现
- DataGrid中DropDownList的动态绑定和触发DropDownList事件