虚拟化列表视图中图像的 FrameworkElement.Loaded 方法



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

加载的方法似乎并没有为每个丢失的图像调用 - 我可以说。有时它会加载数据上下文的空值 - 但只是有时?有时会加载图像 1 的图像,例如,图像 33 的图像。

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

所以我的问题是:

在列表视图的数据模板中加载时,如何访问每个图像?如果加载是错误的方法,正确的方法是什么?

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

相关内容

  • 没有找到相关文章

最新更新