2016-09-14 16 views
0

私は、失敗する可能性があるアクションを実行するwpfデータグリッドのセル化イベントを実装しています。アクションが失敗した場合、私はイベントをキャンセルとして設定します。設定されてから値をキャンセルしないデータグリッドセルインデントをキャンセルしても編集は中止されますか?

private void datagrid_CellEditEnding(object sender, DataGridCellEditEndingEvent e) 
{ 
    e.Cancel = true; 
} 

が、しかしdatagridcellが編集状態のままである:これは基本的な例です。キャンセルすると実際にセルの編集を終了させる方法はわかりません。助言がありますか?

答えて

1

あなたはCancelEditを呼び出す必要があります:

private void datagrid_CellEditEnding(object sender, DataGridCellEditEndingEvent e) 
{ 
    e.Cancel = true; 
    (sender as DataGrid).CancelEdit(DataGridEditingUnit.Cell); 
} 
+0

私はdatagrid_CellEndEditingが再び呼び出されるようCancelEditを呼び出すと再帰を引き起こすことが、試してみました。私はif(e.EditAction == DataGridEditAction.Cancel)を返しました。しかし、それはハッキーのように見えました。これはプローバの方法ですか? – Kyle

+0

私は 'CancelEdit'を呼び出す場合、' e.Cancel = true'が必要かどうか疑問です。あなたはこの行なしでそれを試すことができます。 – Kinetic

関連する問題