我的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)
{
}
}
答案 0 :(得分:1)
要获取ComboBox的所选项目,您可以处理其SelectionChanged event,例如此处:
<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
到data binding的收藏集。
通过保存所选项目,我个人认为在应用处于暂停阶段时保存本地设置会更好,并在启动阶段读取设置数据。要检查UWP应用的生命周期,官方文档Launching, resuming, and background tasks将为您提供帮助。这意味着您必须在应用运行期间保存页面状态,为此,您可以缓存设置页面,有关页面状态的更多信息,您可以参考UWP page state manage中的答案。 / p>
对于保存和检索设置部分,以下是官方文档:Store and retrieve settings and other app data,此文档中有一些示例代码。
最后,由于您是UWP应用开发的新手,您可以参考How-to articles for UWP apps on Windows 10开始使用。 GitHub上有很多official UWP samples也可能有所帮助。