gpt4 book ai didi

c# - 从主页绑定(bind)到 Template10 设置

转载 作者:行者123 更新时间:2023-11-30 23:29:01 25 4
gpt4 key购买 nike

到目前为止,我很喜欢 Template10,非常好。我对如何绑定(bind)到主页上的设置值有点困惑。我添加了一个正确存储的新 bool 设置。在我的主页上,我有一个绑定(bind)到设置的可见性:

Visibility="{Binding UseAmbientLightSensor, Converter={StaticResource CollapsedWhenFalseConverter}}"

这会按预期在应用程序启动时起作用,MainPageViewModel 从“设置”中读取值,并根据该设置显示或折叠网格。

但是,如果我转到设置页面并更改该值,我似乎无法获得此绑定(bind)以“收听”设置,当我返回主页时,可见性不会改变。它仅在我重新启动应用程序时有效。

在 vanilla Template10 安装中,这类似于将 MainPage 上的一个小 Logo 绑定(bind)到“设置”页面中的“UseLightThemeButton”设置,该设置会根据该设置发生变化..

最佳答案

好的,所以我猜这是“官方”答案。但是很多方法都是有效的。这个与模板最匹配。我会这样做:

public class MainPageViewModel : ViewModelBase
{
Services.SettingService.SettingService _SettingService;

public MainPageViewModel()
{
_SettingService = Services.SettingService.SettingService.Instance;
}

public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
Windows.Storage.ApplicationData.Current.DataChanged += SettingsChanged;
await Task.CompletedTask;
}

public override async Task OnNavigatedFromAsync(IDictionary<string, object> pageState, bool suspending)
{
Windows.Storage.ApplicationData.Current.DataChanged -= SettingsChanged;
await Task.CompletedTask;
}

private void SettingsChanged(Windows.Storage.ApplicationData sender, object args)
{
RaisePropertyChanged(nameof(FontSize));
}

public double FontSize { get { return _SettingService.FontSize; } }
}

使用该 View 模型,您可以轻松绑定(bind)到设置(在本例中为 FontSize)。

祝你好运。

关于c# - 从主页绑定(bind)到 Template10 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com