2010-11-10 87 views
1

在网格上,我有一个ListBox和一个按钮。如果点击该按钮,则将项目添加到列表框中。自动向下滚动列表框

我试图解决的问题是,该项目添加后,它不集中。

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

回答

2

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

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

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

我不得不调用ScrollIntoView强制到UI线程,这似乎这样的伎俩。

下面是这个工作的一个例子。 A 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())); 
}