gpt4 book ai didi

c# - 添加数据后如何滚动到 ListView 的末尾 - WPF

转载 作者:太空宇宙 更新时间:2023-11-03 20:08:46 27 4
gpt4 key购买 nike

我尝试在按钮点击处理程序中添加以下内容:

        ListView listView = MyListView;
int lastItemIndex = listView.Items.Count - 1;
listView.ScrollIntoView(listView.Items[lastItemIndex]);
listView.UpdateLayout();

单击按钮还与一个命令处理程序关联,该处理程序将一个项目添加到与 ListView 关联的 ObservableCollection。

问题是按钮单击处理程序在我的命令处理程序之前被调用,所以为时过早。在按钮单击处理程序中,ListView 尚未看到带有添加项的更新后的 ObservableCollection。什么事件或更好的是,在我的项目添加到 ObservableCollection 之后,如果不更改后面的代码以使 ListView 滚动到末尾,我该怎么办?我已经看过,但在 stackoverflow 中还没有找到答案。谢谢!

最佳答案

如果您ItemSource 是 ObservableCollection,您可以 Hook 到 Window/UserControl 构造函数中的 CollectionChanged 事件,并且每当将项目添加到收藏

假设您的基础类是 TesClass,您将这样做:

((INotifyCollectionChanged)listView.ItemsSource).CollectionChanged +=
(s, e) =>
{
if (e.Action ==
System.Collections.Specialized.NotifyCollectionChangedAction.Add)
{
listView.ScrollIntoView(listView.Items[listView.Items.Count - 1]);
}
};

关于c# - 添加数据后如何滚动到 ListView 的末尾 - WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21348259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com