我在分离的项目中有Views和ViewModels。
从某些viewmodel配置数据获取的最佳做法是什么,例如用户名,用户的privelleges集,我在App.xaml.cs中启动应用程序后设置的
在较旧的项目中,我在同一个项目中有视图和视图模型,我通过以下方式获取此数据:
App _app = Application.Current as App;
var userName=_app.UserName;
答案 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