如何在UWP中保存组合框的选定索引并在用户重新加载页面时将其显示回来?

时间:2016-11-13 17:02:21

标签: c# combobox uwp selectedindex

我的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)
    {

    }
}

1 个答案:

答案 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;。当然,我们还可以将项目添加到ComboBoxdata 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也可能有所帮助。