如何在Windows Universal App中设置应用程序级变量?

时间:2015-10-15 08:37:54

标签: c# win-universal-app

我有这个清单:

List<string> stationNames = new List<string>() { "First station", "Second station" };

如果有可能,我希望可以从我的应用的所有页面访问它。我怎么能这样做?我可以在每一个页面上进行设置,但我认为这不是最有效的方法。

2 个答案:

答案 0 :(得分:0)

您需要的是公共静态属性。

在其中一个课程中,将其定义为:

public class MyClass 
{
    public static readonly List<string> stationNames = new List<string> { "First station", "Second station" };
}

由于静态属性不与任何实例相关联,因此您可以使用以下命令从任何位置访问它:

MyClass.stationNames

编辑:我将 readonly 修饰符添加到List中,因为正如Panagiotis在下面指出的那样,这将不允许在其他时间修改List。但是,如果这是您的预期行为,请不要包含readonly修饰符。

答案 1 :(得分:0)

我认为在应用程序中使用静态字段与列表并不是一个好主意。 如果此数据不会更改并且应该是只读的,则可以使用ApplicationData类。请参阅以下内容:

  1. 要在设置中保存列表,您应该在代码下面执行:

    var localSettings = ApplicationData.Current.LocalSettings;
    localSettings.Values["Stations"] = new List<string> { "First station", "Second station" };
    
  2. 要检索列表:

    var localSettings = ApplicationData.Current.LocalSettings;
    List<string> stationNames = (List<string>) localSettings.Values["Stations"];