2010-11-10 112 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())); 
}