在viewmodel中获取loginName的问题

时间:2011-09-13 07:19:07

标签: silverlight-4.0 mvvm-light

我在分离的项目中有Views和ViewModels。

从某些viewmodel配置数据获取的最佳做法是什么,例如用户名,用户的privelleges集,我在App.xaml.cs中启动应用程序后设置的

在较旧的项目中,我在同一个项目中有视图和视图模型,我通过以下方式获取此数据:

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

1 个答案:

答案 0 :(得分: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
 }

..然后在应用中的任何地方使用它:

var currentUserName = ApplicationContext.Instance().SecurityContext.CurrentUser.User.FullName