我有一个ListView,它会不定期地经常更新。
我希望它能够在收到更新时将项目滚动到视图中。
我知道要执行此操作的代码:
logListView.ScrollIntoView(logListView.Items[logListView.Items.Count - 1]);
我不知道在哪里放置它以便在更新ListView时发生。
我已经尝试将它放在ListView的LayoutUpdated
事件处理程序中,但是当我尝试在没有更新的时间段内滚动时(我知道没有任何更新,因为我已经转向消息泵关闭)视图卡在底部。我猜这是因为滚动会引发LayoutUpdated
事件。
如何在收到新项目时让ListView滚动到底部?
答案 0 :(得分:2)
看看WPF ListBox Scroll when item added的答案。 Items属性是一个ItemCollection,它实现了INotifyCollectionChanged,因此您可以使用CollectionChanged事件。它应该适用于ListView和ListBox,但是如果你使用的是ScrollIntoView,那么我怀疑你有一个ListBox。
INotifyCollectionChanged collection = logListView.Items;
collection.CollectionChanged += collection_CollectionChanged;