0

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

代码编译没有错误 - 但列表框项目从未被选中。感谢您的帮助!干杯威尔

4

1 回答 1

3

疯狂的猜测说您在设置SelectedIndex对 List 进行数据绑定,因此它没有任何效果(除非它为零)。

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

于 2011-10-05T19:30:20.830 回答