2

私の無知を許してください、私は最近Silverlightでコーディングを始めたばかりです。

Silverlightでコマンドパターンを実装してみて、壁にぶつかりました。コマンドはxamlに書き込むことができるので素晴らしいと言われているので、コードビハインドをクリーンに保つことができます。また、ビュー内にビューモデルへの直接参照がないため、ビューとビューモデルの間の結合が緩くなります。

コントロールにバインドできるコマンドは1つだけであり、バインド時にコマンドを起動するイベントを決定する必要があるため、コードビハインドをクリーンに保つことはできません。コントロールに30のイベントがある場合、コマンド用に1つを選択する必要があります。他の29は、コードビハインドのイベントハンドラーから他のコマンドを実行します。

緩い結合は、依存性注入によってより簡単に実現できます。コマンドは、余分なものを何も与えない、役に立たない間接層を追加します。コードの保守が少し難しくなるだけです。インターフェイスに対してプログラミングを行っていて、どのメソッドが呼び出されるかを正確に確認し、コマンド定義とビューモデルの間をジャンプし続ける必要がある場合は、コードを維持する方が簡単です。

私は何かを見逃しましたか、またはコマンドは実際にはビューとビューモデルの相互作用に使用されることを意図していませんか?

次の質問をご覧ください。これが、コマンドですべての誇大宣伝を受け取らない理由です。

SilverlightでMVVMを使用して、コマンドパターンを使用してコントロールごとに複数のイベントを処理するにはどうすればよいですか?

4

3 に答える 3

2

Prism ( http://prism.codeplex.com ) とその DelegateCommand<> インフラストラクチャを見てください。これは、Silverlight と WPF が ViewModel (または Presenter) でコマンドを作成し、それに直接バインドするための優れたソリューションです。また、Silverlight 3 では、Behaviors によって、これと同じ XAML ベースの構文の一部を提供できます。

于 2009-04-03T04:55:00.350 に答える
0

動作パターンを付けてイベントハンドラーをだますことができると思います。詳細については、次のURLを参照してください。

http://www.codeproject.com/KB/WPF/AttachedBehaviors.aspx

于 2009-04-02T13:53:07.530 に答える