我正在设置一个简单的WP7应用程序的墓碑。我有一个项目列表,我想在状态内存中保存ListBox.SelectedIndex,并在返回页面时,在列表中选择该项目。
当我尝试以下代码时,保存该值似乎可行(我已通过在MessageBox中显示它来确认)但未选择列表项。
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
if (State.ContainsKey("activeResult"))
{
listBox1.SelectedIndex = Convert.ToInt32(State["activeResult"]);
}
base.OnNavigatedTo(e);
}
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
State["activeResult"] = listBox1.SelectedIndex;
base.OnNavigatedFrom(e);
}
代码编译时没有错误 - 但是从不选择列表框项。 谢谢你的帮助! 干杯 将
答案 0 :(得分:3)
狂野猜测说你在设置SelectedIndex
之后对列表进行数据绑定,因此它没有效果(除非它为零)。
解决方案:确保在设置SelectedIndex
或数据绑定SelectedIndex
属性之前初始化并加载ViewModel,并将其设置在ViewModel上,而不是在UI组件上。