2016-05-17 68 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