我有一个组合框
<ComboBox x:Name="cityPicker">
<ComboBoxItem IsSelected="True">
<x:String>
city1
</x:String>
</ComboBoxItem>
<ComboBoxItem>
<x:String>
city2
</x:String>
</ComboBoxItem>
当用户选择“city2”时,我将其保存到selectedCity
键中的漫游设置中。
当用户在退出后启动应用程序并从另一个页面返回此页面后,我需要从漫游设置中加载此值。
将此代码值保存到 RoamingSetting,并且当我在更改城市后启动应用程序时,roamingsettings 具有其价值。但 Combobox 不会检索它。组合框选定的项目保持空白。
如何以编程方式更改组合框中的选定项目?
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
var roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
if (roamingSettings.Values.ContainsKey("selectedCity"))
{
cityPicker.SelectedValue = roamingSettings.Values["selectedCity"].ToString();
}
}
public StartPage()
{
InitializeComponent();
cityPicker.SelectionChanged += cityPicker_SelectionChanged;
}
void cityPicker_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var roamingSettings =
Windows.Storage.ApplicationData.Current.RoamingSettings;
var cityPick = cityPicker.SelectedItem as ComboBoxItem;
if (cityPick != null) roamingSettings.Values["selectedCity"] = cityPick.Content;
}
我只能通过改变来做到这一点SelectedIndex
。但这不是我想要的。