自动向下滚动列表框

时间:2010-11-10 23:29:00

标签: silverlight windows-phone-7

在网格上,我有一个ListBox和一个按钮。如果单击该按钮,则会将项目添加到列表框中。

我正在尝试修复的问题是,在添加项目后,它没有聚焦。

我想自动向下滚动列表框,以便用户可以看到最近添加的项目。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以设置SelectedIndex属性以设置当前选定的项目。

如果它滚动页面,您可以使用ScrollIntoView()来显示列表的底部。

    listBox1.SelectedIndex = listBox1.Items.Count;
    listBox1.ScrollIntoView(listBox1.SelectedItem);

答案 1 :(得分:2)

我不得不强制调用ScrollIntoView进入UI线程,这似乎可以解决问题。

以下是此工作的一个示例。一个 dd这是新DataBound应用程序中应用程序栏图标按钮单击事件的事件处理程序。

private void ApplicationBarIconButton_Click(object sender, EventArgs e)
{
    App.ViewModel.Items.Add(new ItemViewModel
                                {
                                    LineOne = "new L1",
                                    LineTwo = "new L2",
                                    LineThree = "new L3"
                                });

    Dispatcher.BeginInvoke(() =>
        MainListBox.ScrollIntoView(MainListBox.Items.Last()));
}