C# FrameworkElement.为虚拟化listview中的图像加载的方法

C# FrameworkElement.为虚拟化listview中的图像加载的方法,c#,image,xaml,uwp,virtualization,C#,Image,Xaml,Uwp,Virtualization,在我的ListView中,我的DataTemplate中有一个图像,它使用转换器加载图像。如果加载的图像不存在,转换器将加载占位符图像。接下来,在图像的FrameworkElement.Loaded方法中,我创建缺少的图像,并将其异步显示在屏幕上。一切都很好。。。除了一件事 加载的方法似乎不会为每个丢失的图像调用——我可以说。有时它会为DataContext加载空值-但只是有时?有时会加载图像1的图像,例如图像33 通常发生的情况是,对于屏幕上大多数缺失的图像,它们将被正确创建和加载,但它只是在

在我的ListView中,我的DataTemplate中有一个图像,它使用转换器加载图像。如果加载的图像不存在,转换器将加载占位符图像。接下来,在图像的FrameworkElement.Loaded方法中,我创建缺少的图像,并将其异步显示在屏幕上。一切都很好。。。除了一件事

加载的方法似乎不会为每个丢失的图像调用——我可以说。有时它会为DataContext加载空值-但只是有时?有时会加载图像1的图像,例如图像33

通常发生的情况是,对于屏幕上大多数缺失的图像,它们将被正确创建和加载,但它只是在屏幕上图像的末尾附近停止。我相信这是由于uwp中的虚拟化工作方式,就像wpf应用程序中的相同方法一样,关闭虚拟化后的工作方式与预期一样

所以我的问题是:


当加载到ListView的DataTemplate中时,如何访问每个图像?如果Loaded是错误的方法,那么正确的方法是什么?

答案是使用ImageOpen方法,因为如果实际的占位符图像不存在,我会打开占位符图像。因此,我在ImageOpened方法中检查打开的图像是否为占位符,并从那里调用我的CreateImage方法。

我很高兴您找到了解决方案。你可以把你的回答标记为回答。这将帮助更多的人,谢谢。