我的Windows Phone 8.1 WinRT应用程序中有一个ListView
,它也可以对项目进行分组。定义了组模板,它们包含Rectangle
个对象,其ImageBrush
属性为Fill
个对象。
ListView
ItemsStackPanel
的{{1}}为ItemsPanel
,以显示项目和群组。
问题是,我认为ItemsStackPanel
在虚拟化时重复使用项目容器,因为图像被加载和绘制一次,但是当我滚动时,图像命令被混乱,其中一些图像完全丢失了图像,并且ImageBrush
的图像加载事件也不会被触发,表示项目已缓存。
我已尝试在VirtualizingStackPanel.VirtualizationMode="Standard"
上设置"Recycling"
而不是ItemsStackPanel
,但似乎没有任何效果。
任何帮助都将不胜感激。
答案 0 :(得分:0)
在ImageBrush.ImageFailed
的组标题模板中处理ItemsStackPanel
(或任何其他事件)会导致非常奇怪的行为。
我没有真正解决问题,只是删除了事件处理程序,并在找不到主图像文件时实现了另一种加载默认图像的机制。
我在Image
中加载了另一个默认图像,并将另一个Image
放在第一个上面,加载实际的图像文件。如果加载失败,则显示下面的那个。