我将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/

10-09 21:38