Проблема с получением loginName в viewmodel - PullRequest
0 голосов
/ 13 сентября 2011

У меня есть Views и ViewModels в отдельных проектах.

Каков наилучший способ получения некоторых конфигурационных данных viewmodel, например, имени пользователя, набора привилегий для пользователей, который я установил после запуска приложения в App.xaml.cs

В старых версияхпроект У меня были представления и модели представления в том же проекте, и я получал эти данные по:

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

1 Ответ

2 голосов
/ 13 сентября 2011

Я не уверен, почему у вас есть View и виртуальные машины в отдельных проектах.Обычно мы используем одноэлементный шаблон для хранения настроек приложения, например,

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
...