这两个我都试过了:
comboBoxToHour.SelectedValue = comboBoxToHour.Items.IndexOf("11");
comboBoxToHour.SelectedIndex = comboBoxToHour.Items.IndexOf("11");
...而且没有一个工作,事实上,这也没有:
comboBoxFromHour.SelectedValue = "11";
...也不是这个:
comboBoxFromHour.SelectedIndex = 12;
...我觉得很奇怪。
更新
我尝试了罗斯建议的修复,但是这样:
if (App.roamingSettings.Values.ContainsKey("FromMonthSection1"))
{
if (comboBoxFromMonth.Items != null)
{
var item = comboBoxFromMonth.Items.FirstOrDefault(p => (p as ComboBoxItem).Content.ToString() == App.roamingSettings.Values["FromMonthSection1"].ToString());
...我得到,“对象引用未设置为对象的实例。” 在最后一行。
更新 2
事实证明,一个简单的方法毕竟是有效的。事实证明:
if (App.roamingSettings.Values.ContainsKey("FromMonthSection1"))
{
if (comboBoxFromMonth != null)
{
var item = comboBoxFromMonth.Items.FirstOrDefault(p => (p as ComboBoxItem).Content.ToString() == App.roamingSettings.Values["FromMonthSection1"].ToString());
if (item != null)
{
comboBoxFromMonth.SelectedItem = item;
}
}
}
...失败,“ System.NullReferenceException 未由用户代码 HResult=-2147467261 处理消息=对象引用未设置为对象的实例。 ”
...在分配给项目的行上。
然而,这:
if ((App.roamingSettings.Values.ContainsKey("FromMonthSection1")) &&
(!string.IsNullOrWhiteSpace(App.roamingSettings.Values["FromMonthSection1"].ToString())))
{
comboBoxFromMonth.SelectedItem = App.roamingSettings.Values["FromMonthSection1"].ToString();
}
...作品。