1

MVVMパターンを使用して、WPFアプリケーション(実際にはツールです)を開発しようとしています。私はいくつかの記事を読んだり、ビデオを見たり、質問を投稿したりしましたが、どういうわけか、このMVVMに対する私のアプローチや理解は「正しいもの」ではないと感じています。

UIから始めます。最初の段階で、UIは次のように表示します。

  • グループボックス
    • ユーザー名のテキストボックス
    • パスワードのテキストボックス(最初は無視しましょうPasswordBox
  • グループボックス
    • このユーザーが使用できるプロジェクト名のリストのコンボボックス(Webサービスから取得されます)
    • 選択したプロジェクトにログインするためのボタン「ログイン」
    • 現在のプロジェクトからログアウトするためのボタン「ログアウト」

したがって、処理する必要のある次のデータを特定します。

  • ユーザー名の文字列
  • パスワードの文字列
  • プロジェクトのObservableCollection<Project>リストについて
  • アクティブなプロジェクトを表すProjectオブジェクト
  • プロジェクトにログインしているbooleanかどうか

心配ですが、MVVMに続いてこれをどのように構造化または設計する必要があるのか​​わかりません。ここでは、いくつのビュー、ビューモデル、およびモデルを使用する必要がありますか?もちろん、アプリケーションは大きくなりますが、それほど大きくはなりません。上記に固執しましょう。

4

1 に答える 1

6

これには正しい答えも間違った答えもありません

ビュー、ViewModels、およびモデルをカットオフポイントと考えてください。これらを使用すると、再利用できないモノリシックアプローチを採用するのではなく、アプリケーションをモジュール化できます。

一般に、ViewModelsからViewsは1:Mですが、実際には、ほとんどの場合、それらは1:1の関係にあります。INotifyPropertyChangedViewModelとViewは、作業の大部分が存在する場所であり、Modelは、バインディングのニーズを実装するPOCOにすぎません。

あなたの例では、必要に応じて、単一のViewModelと複数のモデル(Project、UserCredentialsなど)に裏打ちされた単一のビューを使用します。実際のログイン作業を実行するサービスがある場合がありますが、その作業はViewModelで実行できます。

于 2013-01-25T20:30:44.227 に答える