2016-05-17 36 views
0

当在WPF Datagrid中编辑任何单元格时,如果我按Esc键退出CellEditEnding事件。相反,我想要触发RowEditEnding。通过按退出键激活RowEditEnding事件

我知道,当我按下Esc键一次,CellEditEnding事件触发,并且当我第二次按下Esc键时,RowEditEnding事件触发。但我不想要这种行为。我希望当我按下Esc键时第一次,我想要触发RowEditEnding事件。

+0

为什么当'CellEditEnding'激发时不会触发'RowEditEnding'? – wajeeh

+0

请显示DataGrid的XAML和绑定到DataGrid的方法(DataTable或ObservableCollection) – StepUp

+0

@wajeeh请给我一个例子吗? – Vishal

回答

2

从MSDN网站看看DataGridCellEditEndingEventArgsDataGridRowEditEndingEventArgs

所以,你可以建立一个新的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现在。

请注意,您可以添加一些检查以区别调用的方法。

+0

谢谢你的回答。我只是感到困惑,你让它变得如此简单。 – Vishal

+0

欢迎您随时编辑答案,如果它包含错字错误。 @Vishal – wajeeh