我正在用 c#/xaml 开发一个 Windows 8 商店应用程序。Windows 商店指南说,当用户更改设置时,应用程序应立即反映该更改。我需要帮助弄清楚如何做到这一点。
以下是有关我的设置的一些详细信息。
我创建了一个名为 OptionsView 的自定义控件:
public partial class OptionsView : UserControl
{
public OptionsView()
{
this.InitializeComponent();
}
private void cmbEarliestYear_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
roamingSettings.Containers["appOptions"].Values["earliestYear"] = cmbEarliestYear.SelectedValue.ToString();
}
}
在我的 App.xaml.cs 类中,当用户单击选项链接时,我使用 Callisto 库中的 SettingsFlyout 来显示自定义选项控件:
protected override void OnWindowCreated(WindowCreatedEventArgs args)
{
base.OnWindowCreated(args);
SettingsPane.GetForCurrentView().CommandsRequested += onCommandsRequested;
}
void onCommandsRequested(SettingsPane settingsPane, SettingsPaneCommandsRequestedEventArgs eventArgs)
{
UICommandInvokedHandler optionsHandler = new UICommandInvokedHandler(onOptionsClick);
SettingsCommand optionsCommand = new SettingsCommand("options", "Options", optionsHandler);
eventArgs.Request.ApplicationCommands.Add(optionsCommand);
}
void onOptionsClick(IUICommand command)
{
SettingsFlyout settings = new SettingsFlyout();
settings.FlyoutWidth = SettingsFlyout.SettingsFlyoutWidth.Narrow;
settings.HeaderText = "Options";
settings.Content = new OptionsView();
settings.IsOpen = true;
}
我的应用程序中有一个名为 CreateTripPage 的页面。该页面上有一个组合框,允许用户更改旅行的年份。该组合框中最早的年份需要根据用户在选项中设置的值进行更改。因此,当用户在 CreateTripPage 打开时更改 OptionsView 中 cmbEarliestYear 的值时,我需要触发一个事件。我不知道如何触发/订阅所需的事件。
任何帮助,将不胜感激。