【发布时间】:2008-10-17 12:44:45
【问题描述】:
WPF,类似浏览器的应用程序。
我有一个包含 ListView 的页面。调用 PageFunction 后,我向 ListView 添加一行,并希望将新行滚动到视图中:
ListViewItem item = ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
if (item != null)
ScrollIntoView(item);
这行得通。只要新行在视图中,该行就会获得应有的焦点。
问题是,当线条不可见时,事情就不起作用了。
如果该行不可见,则生成的行没有 ListViewItem,因此 ItemContainerGenerator.ContainerFromIndex 返回 null。
但如果没有该项目,我如何将行滚动到视图中?有什么方法可以滚动到最后一行(或任何地方)而不需要 ListViewItem?
【问题讨论】:
-
我已经使用了 ListBox 和 DataGrid 的 ScrollIntoView() 并且它们没有出现这个问题?这是一个愚蠢的问题,但你是在运行 3.5 SP1 吗?很多事情都在那里解决了。
-
是的,我运行了 3.5SP1,发现这不是一个错误。 ListViewItem 是虚拟化的,这没关系,但是我如何将它滚动到视图中呢?