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