WP7 Tombstoning - 无法从状态数据中设置列出所选项目值

时间:2011-10-05 18:22:52

标签: c# silverlight windows-phone-7 listbox tombstoning

我正在设置一个简单的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);
        }

代码编译时没有错误 - 但是从不选择列表框项。 谢谢你的帮助! 干杯 将

1 个答案:

答案 0 :(得分:3)

狂野猜测说你在设置SelectedIndex 之后对列表进行数据绑定,因此它没有效果(除非它为零)。

解决方案:确保在设置SelectedIndex或数据绑定SelectedIndex属性之前初始化并加载ViewModel,并将其设置在ViewModel上,而不是在UI组件上。