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 中进行更改的情况。
我想在 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 中进行更改的情况。