0

たぶん、タイトルはそれほど説明的ではありません。

私はGalasoftMVVMフレームワークを正しく使用していますが、アプリケーションで常に必要であるか、ビューモデルでこれらのデータを使用していることに気付きました。

必要なデータはこの認証モデルです

  • ユーザー名:文字列
  • パスワード:文字列
  • IsGuest:bool

これらのデータをナビゲーションに渡すのは良い考えではなく、最善の方法ではないと思います。

数か月前、私はPrismを使用していましたが、Containerと呼ばれるものを覚えています。ここでは、アプリケーションのすべてのライフサイクルでオブジェクトを登録および保存できます。

私が考えていたもう1つの方法は、Appクラスに保存することですが、これが良いアイデアかどうかはわかりません。

ちなみに、私はMetroUIアプリケーションに取り組んでいます。

4

2 に答える 2

1

ビューAppの一部であるため、にデータを保存しないでください。これを使用するには、すべてのViewModelからビューを効果的に参照する必要があります。MVVMの基本原則は、モデルは他のモデルアイテムにのみアクセスでき、ViewModelは他のViewModelとモデルにアクセスでき、ViewはViewModelにアクセスできるということです。

あなたが考えることができるいくつかの選択肢があります

  1. これが初期化される静的クラスAuthenticationDataを作成します
  2. 各ビューモデルのコンストラクターに認証データを渡します
  3. 認証データをIoCコンテナに保存します(GalaSoftにはSimpleIocクラスがあります)

IAuthenticationDataオプション2および3を使用すると、インターフェースを使用する場合、テスト目的で認証データを簡単にモックアップできます。

于 2012-06-12T01:37:08.977 に答える
0

認証については、すでに使用できるものがあります。IPrincipal/IIdentityインターフェースを確認してください。認証時に、これらはThread.CurrentThread.CurrentPrincipalに設定され、後で使用できます。

あなたが参照しているコンテナはおそらくIoCコンテナであるUnityであり、GalaSoftにもシンプルなコンテナが付属しています。

于 2012-06-12T03:43:34.437 に答える