从另一个页面读取IsolatedStorage中的设置
本文关键字:设置 IsolatedStorage 读取 另一个 | 更新日期: 2023-09-27 18:14:33
很简单的问题,以前问过,但是没有人给我正确的答案,所以我要非常具体。
我需要在Windows Phone中读取IsolatedStorage
的两个设置。设置为:ExitAlert
、OrientationLock
。我已经设置好了设置,它们保存得很好,我只需要知道如何从另一页读取它们。设置变量的页面是Settings.cs
,我需要从MainPage.xaml.cs
读取设置。我还需要知道如何只做一些事情,如果变量是真或假。我想我应该用if-then-else语句,但我只是想再检查一下。
我的应用程序是用c#编写的。这是我用来存储设置的代码:
using System;
using System.IO.IsolatedStorage;
using System.Diagnostics;
namespace Google_
{
public class AppSettings
{
IsolatedStorageSettings isolatedStore;
// isolated storage key names
const string ExitWarningKeyName = "ExitWarning";
const string OrientationLockKeyName = "OrientationLock";
// default values
const bool ExitWarningDefault = true;
const bool OrientationLockDefault = false;
public AppSettings()
{
try
{
// Get the settings for this application.
isolatedStore = IsolatedStorageSettings.ApplicationSettings;
}
catch (Exception e)
{
Debug.WriteLine("Exception while using IsolatedStorageSettings: " + e.ToString());
}
}
public bool AddOrUpdateValue(string Key, Object value)
{
bool valueChanged = false;
// If the key exists
if (isolatedStore.Contains(Key))
{
// If the value has changed
if (isolatedStore[Key] != value)
{
// Store the new value
isolatedStore[Key] = value;
valueChanged = true;
}
}
// Otherwise create the key.
else
{
isolatedStore.Add(Key, value);
valueChanged = true;
}
return valueChanged;
}
public valueType GetValueOrDefault<valueType>(string Key, valueType defaultValue)
{
valueType value;
// If the key exists, retrieve the value.
if (isolatedStore.Contains(Key))
{
value = (valueType)isolatedStore[Key];
}
// Otherwise, use the default value.
else
{
value = defaultValue;
}
return value;
}
public void Save()
{
isolatedStore.Save();
}
public bool ExitWarning
{
get
{
return GetValueOrDefault<bool>(ExitWarningKeyName, ExitWarningDefault);
}
set
{
AddOrUpdateValue(ExitWarningKeyName, value);
Save();
}
}
public bool OrientationLock
{
get
{
return GetValueOrDefault<bool>(ExitWarningKeyName, OrientationLockDefault);
}
set
{
AddOrUpdateValue(OrientationLockKeyName, value);
Save();
}
}
}
}
如果有什么不清楚的,请告诉我,以便我进一步解释。谢谢。
我要做的是将以下内容添加到我的AppSettings类中:
private static AppSettings _default = new AppSettings();
/// <summary>
/// Gets the default instance of the settings
/// </summary>
public static AppSettings Default
{
get
{
return _default;
}
}
那么你可以直接使用AppSettings。项目中任何地方的默认值:
if (AppSettings.Default.ExitWarning)
{
}
else
{
}
如果您需要更多的信息,请告诉我。
您还可以使用PhoneApplicationService.Current.State[]
来存储应用程序范围的设置。它们可以从任何页面访问,您不需要单独的存储来存储它们。
的例子:
PhoneApplicationService.Current.State["ExitWarning"] = true;