【问题标题】:Scroll to bottom on new item. My method freezes scrollbar滚动到新项目的底部。我的方法冻结滚动条
【发布时间】:2011-04-04 06:09:01
【问题描述】:

我有一个不定期更新的 ListView。

我想要它,以便在收到更新时将项目滚动到视图中。

我知道这样做的代码:

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

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

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

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

【问题讨论】:

    标签: c# wpf .net-3.5 listview


    【解决方案1】:

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

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

    【讨论】:

    • 我可以确认我有一个 ListView。这确实适用于 ListView。感谢您的回答,这正是我所需要的。
    猜你喜欢
    • 2014-12-12
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    相关资源
    最近更新 更多