我将WinForms中完成的程序重构为WPF,并使用Caliburn.Micro作为实现MVVM模式的框架。
在旧程序中,我使用StatisHelper
类允许不同的静态变量,例如主题,语言,用户名或访问权限等。
我知道这可能是不安全的,因为这些变量是公共(public)的,但是我怀疑我的最终用户知道如何访问这些值...
无论如何,我想了解MVVM中保存最佳值(具体而言,我正在使用Caliburn.Micro框架)的最佳实践,该值可以为所有 View 模型访问。
谢谢你的回复。
最佳答案
您可以使用单例类(有些人不赞成)。请注意,构造函数是private
,因此没有其他可以创建实例。使用Instance
属性进行访问。此示例中的Instance
属性将仅在首次访问该对象时构造该对象。
要使用它,只需执行var foo = Globals.Instance.SomeProperty
之类的操作即可。
注意,这与WPF或MVVM无关,也可以在WinForms中使用。
public class Globals {
private Globals _Instance;
public Globals Instance {
get {
if (_Instance == null)
_Instance = new Globals();
return _Instance;
}
}
private Globals() {
}
public string SomeProperty { get; set; }
}
关于c# - 在MVVM(Caliburn micro)中的哪里放置全局变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19428651/