web-dev-qa-db-ja.com

Silverlight-MVVMの優れた実践例

Model-View-ViewModelパターンに関する多くの優れた記事を読んでおり、チームはこのパターンをアプリの最新バージョンに実装する予定です。私はまだこの仕事をするために一緒に行くすべてのビットを得ることはできません。このパターンの良い例を見つけて、作業を進めたいと思います。ジェイソン・ドリンガーが彼のビデオで行っているような小さなスケールでの何か ここ ですが、私は自分でもっと遅いペースで作業できるものが欲しいです。

よろしくお願いします。

47

基本的に、ViewModelはモデルのラッパーです。さて、これはまだあまり役に立たないかもしれません:-)モデルは、アプリケーションが動作するデータであると考えてください。ある人には誕生日があり、その人の誕生日を入力するフォームが必要になる場合があります。日付が01-02-2009 12:00:00 AMのように表示される単純なTextBoxを使用しているとします。まず、時間の部分は必要ありません。また、ロケールの設定に依存するため、2009年1月2日の部分については満足していません。

ここで、ViewModelはimになります。 Personクラスをラップし、年、月、日の3つの整数値として日付を公開します。プロパティセットでは、異なる値から日付を構築しようとし、発生する可能性のあるエラーを表示します。

つまり、ViewModelは特定のビュー(ディスプレイ)に特化したモデルラッパーである、というだけです。ほとんどのIValueConvertorsを同時に削除します。

ジョシュ・スミスにはここでいい説明があります: http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages およびここでの大きな議論: http://groups.google.com/group/wpf-disciples/browse_thread/thread/3fe270cd107f184f?pli=1

28
Maurice

リストに追加するもう1つは、Tony SneedによるSimple MVVM Toolkit(本当にあなたのものです): http://simplemvvmtoolkit.codeplex.com です。

ツールキットは、ヘルパークラス、Visual Studioアイテムテンプレート、およびコードスニペットで構成されています。実際のツールキットに加えて、MVVMパターンを使用して基本的なSilverlightアプリを構築する方法に関する段階的な手順を含むサンプルアプリがあります。

2
Anthony Sneed

Prism 4.0には、MVVMアプリケーションを作成するためのドキュメントが含まれています。これはPrismライブラリの使用を対象としていますが、概念は一般にMVVMパターンに対して機能します。

http://compositewpf.codeplex.com/releases

2
Andy May

ViewModelの最良の説明は、ヨーロッパでのMVC講演中にScott Hanselmanによって与えられました。

ワンライナーレスポンスとは、特定のビューが必要とするすべての必要なデータを送信し、双方向バインディングの場合にビューから変更されたデータを受信するという唯一の目的のために作成されるモデル(クラス)です。

1
Rahul Misra
1

Nikhil Kothariが、Silverlight.FXライブラリでそのパターンを使用する方法について投稿しています。こちらをご覧ください: http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx

1
Guillaume Gros

私は最近多くのことを経験しましたが、際立っている2つは次のとおりです。

ダン・ワーリン(LIDNUG):

http://www.lidnug.org/Archives.aspx

ジョン・パパ(PDC 2010):

http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344

1
Tom

Silverlightでの実際のMVVMに関する私の記事をご覧ください。ただし、初心者向けではなく、主に実生活のプロジェクトに取り組んでいる専門の開発者を対象としています。

http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/

0
Alex Burtsev