1

私は似たようなことをしようとしています;

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

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

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

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

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

4

1 に答える 1

1

私の最初の予感はノーです...これは、Vincent Sibal のブログからの読みに基づいています。

IEditableCollectionViewCommitEditCommandの対応物をDataGrid呼び出しているようです。そう...

DataGrid.CommitEditCommand-> IEditableCollectionView.CommitEdit->IEditableObject.EndEdit

したがって、モデルが実装されていて、 Enter キーを押す (CommandManager を介して保存された InputBinding)IEditableObject内のセルにいた場合、デフォルトで が実行され、上記のように下流のアクションのカスケードが開始されます。DataGridDataGrid.CommitEditCommand

RowEditEndingブログでは、またはなどのイベントを使用しCellEditEndingてコマンドをキャンセルすることについて説明しています。これは、理論的にはコマンドをキャンセルして、その時点で目的の動作にルーティングできることを意味します。

于 2010-12-15T23:07:43.903 に答える