滚动到以前选择的ListBox项

时间:2011-03-05 01:19:26

标签: c# windows-phone-7

我无法设置列表框的选定项目,我正在填充并在代码中添加LayoutRoot的子项。

我在返回页面时创建了ListBox,所以我保存了一个变量,它会告诉我在用户点击之前所选项目是什么。

我尝试设置SelectedIndex,但这似乎不起作用。选择项目并调用SelectionChanged,但该项目不会成为焦点。

我也尝试了MyListBox.ScrollIntoView(MyListBox.Items[MyListBox.SelectedIndex])MyListBox.UpdateLayout()的组合,但这似乎也没有用。该项目似乎没有成为焦点。

2 个答案:

答案 0 :(得分:0)

尝试MyListBox.SelectedItem.EnsureVisible()

(如果它没有SelectedItem(桌面CLR上没有ListBox),则改为使用SelectedItems[0]

E:好的,看起来像Windows Phone不支持。但是,它确实支持MyListBox.EnsureVisible(MyListBox.SelectedItems[0])

答案 1 :(得分:0)

我最后通过将具有ListBox的UserControl添加到Page的XAML中,并将ListBox添加到UserControl的XAML中来解决此问题。

然后,我能够使用ScrollIntoView(MyListBox.Items[mySavedSelectedItem]);

我只是在用户进行选择时保存了这个值。

mySavedSelectedItem = ((ListBox)sender).SelectedIndex;