滚动到新项目的底部。我的方法冻结了滚动条

时间:2010-08-26 12:37:28

标签: c# wpf .net-3.5 listview

我有一个ListView,它会不定期地经常更新。

我希望它能够在收到更新时将项目滚动到视图中。

我知道要执行此操作的代码:

logListView.ScrollIntoView(logListView.Items[logListView.Items.Count - 1]);

我不知道在哪里放置它以便在更新ListView时发生。

我已经尝试将它放在ListView的LayoutUpdated事件处理程序中,但是当我尝试在没有更新的时间段内滚动时(我知道没有任何更新,因为我已经转向消息泵关闭)视图卡在底部。我猜这是因为滚动会引发LayoutUpdated事件。

如何在收到新项目时让ListView滚动到底部?

1 个答案:

答案 0 :(得分:2)

看看WPF ListBox Scroll when item added的答案。 Items属性是一个ItemCollection,它实现了INotifyCollectionChanged,因此您可以使用CollectionChanged事件。它应该适用于ListView和ListBox,但是如果你使用的是ScrollIntoView,那么我怀疑你有一个ListBox。

INotifyCollectionChanged collection = logListView.Items;
collection.CollectionChanged += collection_CollectionChanged;