Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ListView项目出现时获得通知?_C#_Wpf_Listview - Fatal编程技术网

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
事件o
ScrollViewer
事件?是否尝试过LayoutUpdate事件?