3

CodePlexのMVVMVisualStudioテンプレートにあるDelegateCommandを使用しています。これは、ViewsがViewModelでコマンドを実行できるようにするために非常にうまく機能します。

MVVMでは「アタッチされた動作」を使用する必要があることをどこかで読みました。私の知る限り、「アタッチされた動作」はDelegateCommandと同じタイプのパターンですが、コマンドがないため、 Silverlightによって使用されます。

これは正しいですか?それとも、「アタッチされた動作」は、DelegateCommandに加えて、種類が異なり、学ぶ価値のあるものですか?

4

1 に答える 1

6

DelegateCommand (または、ほとんど同じですがパラメーターを受け入れる RelayCommand) は、ViewModel がコマンドを簡単に公開できるようにする ICommand インターフェイスの軽量実装です。

アタッチされた動作は、イベントをコマンドにリンクする方法です。たとえば、ほとんどの WPF コントロールには Command プロパティがないため、通常、イベントに反応するコマンドを定義することはできません。アタッチされた動作を使用すると、任意のコントロールの任意のイベントを ViewModel のコマンドに "バインド" できます。Marlon Grech's implementationを見てください。これは私にとって最も柔軟なようです

于 2009-05-29T08:57:00.330 に答える