コンボボックスがあります
<ComboBox x:Name="cityPicker">
<ComboBoxItem IsSelected="True">
<x:String>
city1
</x:String>
</ComboBoxItem>
<ComboBoxItem>
<x:String>
city2
</x:String>
</ComboBoxItem>
ユーザーが「city2」を選択すると、selectedCity
キーのローミング設定に保存されます。
ユーザーが終了後にアプリケーションを起動し、別のページからこのページに戻ったときに、ローミング設定からこの値をロードする必要があります。
このコード値を RoamingSetting に保存すると、都市を変更した後にアプリケーションを起動すると、roamingsettings にその値が設定されます。しかし、コンボボックスはそれを取得しません。コンボボックスで選択したアイテムは空のままです。
コンボボックスで選択した項目をプログラムで変更するには?
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
。しかし、これは私が望むものではありません。