WPF,類似瀏覽器的應用程序。
我得到了一個包含ListView的頁面。在調用PageFunction之後,我向ListView中添加一行,並且想要將新行滾動到視圖中:將WPF Listview滾動到特定行
ListViewItem item = ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
if (item != null)
ScrollIntoView(item);
This works。只要新線路在視線中,線路就像它應該獲得焦點一樣。
問題是,當行不可見時,事情不起作用。
如果該行不可見,則生成的行沒有ListViewItem,因此ItemContainerGenerator.ContainerFromIndex返回null。
但沒有該項目,我該如何將視圖滾動到視圖中?有什麼辦法可以滾動到最後一行(或任何地方)而不需要ListViewItem?
我已經使用ListBox和DataGrid的ScrollIntoView(),他們不會出現這個問題?這是一個愚蠢的問題,但你是否在3.5 SP1上運行?很多東西都在那裏修好了。 – 2008-10-17 13:07:38
是的,我對3.5SP1跑,發現這不是一個錯誤。 ListViewItem是虛擬化的,沒關係,但是如何將它滾動到視圖中呢? – Sam 2008-10-17 13:21:33