Template10 应用程序中的设置

Settings in Template10 App

我想在 Template10 应用程序中创建自定义设置。设置服务没有很好的记录,所以我想问什么是 best/recommended 创建自定义设置的方法,例如我想添加设置,您可以在其中打开或关闭搜索历史记录,它只是 bool 值。 在我使用它来设置应用程序之前:ApplicationData.Current.LocalSettings.Values["SettingName"] = true;

要获取设置值,我将使用:

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

看看 minimal 或 hamburger 模板中的 SettingsService class,它应该是这样的:

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 class 中的 setter 中进行。但是,我可以想象您会直接在 ViewModel 中进行更改的情况。