2009-05-29 16 views
3

私は、CodePlexのMVVM Visual Studio templateにあるDelegateCommandを使用しています。このはViewをViewModelで実行できるように非常にうまく動作します。DelegateCommandは「Attached Behavior」と同じですか?

MVVMの「接続された動作」を使用する必要があります。私が知る限り、「添付された動作」はDelegateCommandと同じタイプのパターンですが、コマンドがないためSilverlightによって使用されています。

ですか?または、DelegateCommandを追加した場合、種類が異なり、学習価値のある「接続された動作」ですか?

答えて

6

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

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

関連する問題