2010-12-15 14 views
1

私は似たようなことをしようとしています。DatagridのCommitEditCommandをビューモデルのICommandにバインドすることはできますか?

<Button Command="{Binding DeleteCommand}" /> 

ここで、DeleteCommandは、ビューモデルによって公開されるICommandです。

私は次のようなことができると思っていましたが、これはそうではないようです。

<DataGrid CommitEditCommand="{Binding CommitCommand}" /> 

基本的に私は、ビューモデルでイベントの発生をキャプチャして、それに対処しようとしています。私はここで何が欠けていますか?

答えて

1

私の最初の勘違いはありません...これはVincent Sibalのblogからの読みに基づいています。

DataGridCommitEditCommandは、IEditableCollectionViewと呼ばれます。だから... ...

DataGrid.CommitEditCommand - >IEditableCollectionView.CommitEdit - あなたはEnterキーを押すDataGrid内のセル上にあったので>IEditableObject.EndEdit

モデルにIEditableObjectを実施している場合(CommandManagerの経由で保存されたInputBinding)は、デフォルトでDataGrid.CommitEditCommandを実行します

ブログでは、RowEditEndingまたはCellEditEndingなどのイベントを使用してコマンドをキャンセルすると、理論上はコマンドを取り消すことができ、その時点ではキャンセルできますあなたの望む行動へのルート。

+0

+1 vinceとのリンクSibalのブログ – David

関連する問題