2012-04-13 7 views
1

私はWPF(MVVMパターン)を基にしたデスクトップアプリケーションを開発しています そしてMVVMLight-Toolkitを使用しています 私のアプリケーションにはユーザ認証。 問題は、私がViewAを持っていて、そのdataContextがViewModelAによって定義されているとします。 ユーザー1がアプリケーションにログオンし、viewAにナビゲートして、何かをしてから切断するとします。別のユーザまたは同じユーザが再びログオンして同じViewAにナビゲートするとき、彼は前のユーザの最新のコンテキストを見つける。 作成したViewModelのインスタンスを強制終了し、新しいユーザーのために新しいViewModelを作成したいとします。 私はViewModelLocatorViewModelLocator(mvvmlight-toolkit)からViewModelインスタンスを削除する方法

public static void RegisterViewModel<T>() where T : ViewModelBase 
    { 

     if (SimpleIoc.Default.IsRegistered<T>() 
      SimpleIoc.Default.Unregister<T>(); 
     SimpleIoc.Default.Register<T>(); 
    } 

に登録メソッドを追加しようとしましたが、それは動作しません、コンテキストが滞在しています。 この問題の解決にお手伝いできますか? THX

答えて

2

は、私はDataContextの としてのViewModelのインスタンスを使用して、私は

SimpleIoc.Default.Unregister()を呼び出しているビューを解放する必要が解決 を見つけました。

タイプT用に作成されたすべてのViewModelのインスタンスはあなたに「私はビューを解放する必要がある」によって何を意味するか、自動的に

+2

削除されますか?私はあなたと同じ問題に遭遇し、まだ解決策を見つけることができませんでした。 – Joel

関連する問題