当在WPF Datagrid中编辑任何单元格时,如果我按Esc键退出CellEditEnding事件。相反,我想要触发RowEditEnding。通过按退出键激活RowEditEnding事件
我知道,当我按下Esc键一次,CellEditEnding事件触发,并且当我第二次按下Esc键时,RowEditEnding事件触发。但我不想要这种行为。我希望当我按下Esc键时第一次,我想要触发RowEditEnding事件。
当在WPF Datagrid中编辑任何单元格时,如果我按Esc键退出CellEditEnding事件。相反,我想要触发RowEditEnding。通过按退出键激活RowEditEnding事件
我知道,当我按下Esc键一次,CellEditEnding事件触发,并且当我第二次按下Esc键时,RowEditEnding事件触发。但我不想要这种行为。我希望当我按下Esc键时第一次,我想要触发RowEditEnding事件。
从MSDN网站看看DataGridCellEditEndingEventArgs和DataGridRowEditEndingEventArgs
所以,你可以建立一个新的EventArg
并将其传递给第二个方法。
private void CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) {
DataGridRowEditEndingEventArgs arg = new DataGridRowEditEndingEventArgs(e.Row, e.EditAction);
OnRowEditEnding(sender, arg);
}
然后
private void OnRowEditEnding(object sender, DataGridRowEditEndingEventArgs e) {
// your code
}
也许有一些错误,因为我没有C#
IDE现在。
请注意,您可以添加一些检查以区别调用的方法。
为什么当'CellEditEnding'激发时不会触发'RowEditEnding'? – wajeeh
请显示DataGrid的XAML和绑定到DataGrid的方法(DataTable或ObservableCollection) – StepUp
@wajeeh请给我一个例子吗? – Vishal