C# 如何在ListView项目出现时获得通知?
我有一个C# 如何在ListView项目出现时获得通知?,c#,wpf,listview,C#,Wpf,Listview,我有一个列表视图和列表框列表视图显示一些绑定到列表的数据。 并且列表框用作菜单。当我单击菜单中的一个项目时,我会更改绑定的源代码列表,因此ListView显示更新的内容。 现在,我想通过以下方式获取列表视图中的所有可见项: var scrollViewer = GetVisualChild<ScrollViewer>(myListViewControl); if (scrollViewer != null) { Console.WriteLine("Visible Item
列表视图
和列表框
<代码>列表视图显示一些绑定到列表的数据。
并且列表框
用作菜单。当我单击菜单中的一个项目时,我会更改绑定的源代码列表,因此ListView
显示更新的内容。
现在,我想通过以下方式获取列表视图中的所有可见项:
var scrollViewer = GetVisualChild<ScrollViewer>(myListViewControl);
if (scrollViewer != null)
{
Console.WriteLine("Visible Item Start Index:{0}", scrollViewer.VerticalOffset);
Console.WriteLine("Visible Item Count:{0}", scrollViewer.ViewportHeight);
}
var scrollViewer=GetVisualChild(myListViewControl);
如果(scrollViewer!=null)
{
WriteLine(“可见项开始索引:{0}”,scrollViewer.VerticalOffset);
WriteLine(“可见项计数:{0}”,scrollViewer.ViewportHeight);
}
所以我订阅了一些活动。例如,ValueChanged
和SizeChanged
滚动条事件
,SelectionChanged
列表框事件和绑定列表属性INotifyPropertyChanged
界面
但是我每次都会在ListBox
SelectionChanged
事件后获得上一个视图的scrollViewer.VerticalOffset
。我想当我收到事件通知时,ListView
没有当前视图
因此,我的问题是,如何立即获得更新视图的
scrollViewer.VerticalOffset
和scrollViewer.ViewportHeight
,而不是以前的视图?我需要通过这些项目请求服务器。您是否尝试过处理ScrollChanged
事件oScrollViewer
事件?是否尝试过LayoutUpdate事件?