我有这个清单:
List<string> stationNames = new List<string>() { "First station", "Second station" };
如果有可能,我希望可以从我的应用的所有页面访问它。我怎么能这样做?我可以在每一个页面上进行设置,但我认为这不是最有效的方法。
答案 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类。请参阅以下内容:
要在设置中保存列表,您应该在代码下面执行:
var localSettings = ApplicationData.Current.LocalSettings;
localSettings.Values["Stations"] = new List<string> { "First station", "Second station" };
要检索列表:
var localSettings = ApplicationData.Current.LocalSettings;
List<string> stationNames = (List<string>) localSettings.Values["Stations"];