Template10 App中的设置

时间:2016-03-09 09:39:12

标签: winrt-xaml template10

我想在Template10 app中创建自定义设置。设置服务没有很好的记录,所以我想问一下什么是最好/推荐的方式来创建自定义设置,例如我想添加设置,你可以打开或关闭搜索历史,它只是bool值。 在我使用此功能在应用中设置设置之前:ApplicationData.Current.LocalSettings.Values["SettingName"] = true;

要获得设定值,我只会使用:

(bool)ApplicationData.Current.LocalSettings.Value["SettingName"]; 

1 个答案:

答案 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中直接进行更改的情况。