2011-09-13 5 views
0

私はビューとビューモデルを別々のプロジェクトに持っています。viewmodelでloginNameを取得する際の問題

私は意見を持っていた古いプロジェクトではApp.xaml.cs

にアプリケーションの起動後に設定ユーザーのためのprivellegesのセットの例のユーザー名、のために、いくつかのviewmodelコンフィグ件のデータから取得することがベストプラクティスとは何ですかそして、同じプロジェクト内のviewmodels、そして私がすることで、この件のデータを得ていた:あなたは別々のプロジェクトであなたのビューとVMを持っている理由

App _app = Application.Current as App; 
var userName=_app.UserName; 

答えて

2

は私はわかりません。我々は通常、アプリケーション全体の設定を保存するためにシングルトンパターンを使用します。

public class ApplicationContext 
{ 

    #region Declarations 

    // Static instance of the application class. 
    private static ApplicationContext _instance; 

    #endregion 

    #region Constructor 

    public ApplicationContext() 
    { 
     //SecurityContext is a custom class that stores data on the current user 
     this.SecurityContext = new SecurityContext(); 
    } 

    // Static instance creator. 
    public static ApplicationContext Instance() 
    { 
     if (_instance == null) 
     { 
      _instance = new ApplicationContext(); 
     } 
     return _instance; 
    } 

    #endregion 

    #region Properties 

    public SecurityContext SecurityContext { get; set; } 

    #endregion 
} 

..andその後、アプリ内のどこにでもそれを使用するには:

var currentUserName = ApplicationContext.Instance().SecurityContext.CurrentUser.User.FullName 
関連する問題