如何在UWP中保存组合框的选定索引,并在用户重新加载页面时将其显示回来
本文关键字:加载 新加载 显示 回来 保存 组合 UWP 索引 用户 | 更新日期: 2023-09-27 18:17:46
我在我的UWP应用程序中有一个ComboBox
控件,当用户选择一个选项时,我需要保存它的选定索引!然后,我需要将此索引保存在本地设置中,当用户返回此页面时,我希望ComboBox
将此保存的索引作为所选索引。我需要这个功能在我的设置页面!有人能帮我吗?
这是我的代码:
private void fuelTypeSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var localSettings = ApplicationData.Current.LocalSettings;
try
{
if(localSettings.Values.ContainsKey("selectedIndex"))
{
int index = (int)localSettings.Values["selectedIndex"];
fuelTypeSelector.SelectedIndex = index;
//update the saved index
if(fuelTypeSelector.SelectedIndex!=index)
{
localSettings.Values["selectedIndex"] =
fuelTypeSelector.SelectedIndex;
}
}
else
{
// index does not exist
localSettings.Values.Add("selectedIndex",
fuelTypeSelector.SelectedIndex);
}
}
catch(Exception ex)
{
}
}
要获取ComboBox的选中项,您可以处理它的SelectionChanged事件,就像下面的例子:
<ComboBox SelectionChanged="ComboBox_SelectionChanged">
<ComboBoxItem>Item 1</ComboBoxItem>
<ComboBoxItem>Item 2</ComboBoxItem>
<ComboBoxItem>Item 3</ComboBoxItem>
<ComboBoxItem>Item 4</ComboBoxItem>
<ComboBoxItem>Item 5</ComboBoxItem>
</ComboBox>
背后的代码:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//you can get the selected item like this:
var combo = sender as ComboBox;
var selecteditem = combo.SelectedItem;
//or, since ComboBox DOESN'T support multiple selection, you can get the item like:
var selecteditems = e.AddedItems.FirstOrDefault();
}
或者如果您只需要该项的索引,则可以使用第一种方法,并将代码更改为:var selectedindex = combo.SelectedIndex;
。当然,我们也可以通过数据绑定将项目添加到ComboBox
集合中。
通过保存所选项目,我个人认为最好在应用程序处于暂停阶段时保存本地设置,在启动阶段读取设置数据。要检查UWP应用程序的生命周期,官方文档启动,恢复和后台任务将帮助您。这意味着你必须在你的应用程序运行时保存你的页面状态,要做到这一点,你可以缓存你的设置页面,关于页面状态的更多信息,你可以参考我的答案在UWP页面状态管理。
关于保存和检索设置部分,这里是官方文档:存储和检索设置和其他应用数据,在这个文档中有一些示例代码。
最后,由于您是UWP应用程序开发的新手,您可以参考Windows 10上UWP应用程序的入门文章。GitHub上有很多官方的UWP示例,可能也会有帮助。