我想在Template10
app中创建自定义设置。设置服务没有很好的记录,所以我想问一下什么是最好/推荐的方式来创建自定义设置,例如我想添加设置,你可以打开或关闭搜索历史,它只是bool值。
在我使用此功能在应用中设置设置之前:ApplicationData.Current.LocalSettings.Values["SettingName"] = true;
要获得设定值,我只会使用:
(bool)ApplicationData.Current.LocalSettings.Value["SettingName"];
答案 0 :(得分:2)
看看最小或汉堡包模板中的SettingsService
类,它应如下所示:
public class SettingsService
{
public static SettingsService Instance { get; }
static SettingsService()
{
// implement singleton pattern
Instance = Instance ?? new SettingsService();
}
Template10.Services.SettingsService.ISettingsHelper _helper;
private SettingsService()
{
_helper = new Template10.Services.SettingsService.SettingsHelper();
}
// add your custom settings here like this:
public bool SettingName
{
get { return _helper.Read(nameof(SettingName), false); } // 2nd argument is the default value
set { _helper.Write(nameof(SettingName), value); }
}
}
如您所见,它实现了单例模式,并使用Template10中的帮助程序读取和写入应用程序设置中的值。我还添加了一个名为SettingName
的自定义设置。
要在ViewModel中使用它,请创建一个私有变量:
private SettingsService _settings = SettingsService.Instance;
然后在你想要的任何方法,getter或setter中使用它:
var something = _settings.SettingName; // read
_settings.SettingName = true; // write
如果您想根据某些设置更改应用的行为,建议的方法是在SettingsService
类的设置器中执行此操作。但是,我可以在ViewModel中直接进行更改的情况。