Windows store apps 虚拟化StackPanel在屏幕外滚动时会丢失图像

Windows store apps 虚拟化StackPanel在屏幕外滚动时会丢失图像,windows-store-apps,virtualizingstackpanel,Windows Store Apps,Virtualizingstackpanel,我有一个GridView,其中有一个虚拟化StackPanel作为ItemsPanel。这些项绑定到我的viewModel上的“我的模型”对象集合。我在itemtemplate中绑定到的特定属性是一个图像和三个字符串。当应用程序启动时,一切都按预期进行。但是,当我将项目从屏幕上滚动并返回时,图像消失。字符串继续按预期运行。如果我将ItemsPanel更改为堆栈面板,我就没有这个问题,因此我非常确定这与virtualzingstackpanel有关。我只是不知道从哪里开始调试这个问题 非常感谢您的

我有一个GridView,其中有一个虚拟化StackPanel作为ItemsPanel。这些项绑定到我的viewModel上的“我的模型”对象集合。我在itemtemplate中绑定到的特定属性是一个图像和三个字符串。当应用程序启动时,一切都按预期进行。但是,当我将项目从屏幕上滚动并返回时,图像消失。字符串继续按预期运行。如果我将ItemsPanel更改为堆栈面板,我就没有这个问题,因此我非常确定这与virtualzingstackpanel有关。我只是不知道从哪里开始调试这个问题

非常感谢您的回复

谢谢,
James

正如Nate Diamond在评论中指出的那样,我需要添加对streamVariable.Seek(0)的调用以使其工作。

您的项目模板如何加载图像?通过对嵌入式资源/内容映像的URI引用?或者,是将源直接设置为项目上的ImageSource属性吗?它是我的型号上的StorageItemThumbnail属性,我正在使用转换器将图像源设置为新的BitmapImage;因此,VirtualzingStackPanel的工作方式是重用item容器,只更改其datacontext。我认为不是每次都调用转换器(可以使用一些断点和调试器进行测试),就是每次都重用相同的流而不“倒带”(更有可能)。在转换器中,尝试添加StorageItemThumbnailVariable.Seek(0),然后再从中获取数据。如果不起作用,请查看转换器是否被触发。您可能需要在OnDataContextChanged或OnLoaded中手动触发它。我会试试。谢谢你的指导。当应用程序启动时,每次都会调用转换器。我最初和你一样怀疑转换器没有被调用,我在上面设置了一个断点,但它没有被调用。我会看看你提到的事件,让你知道。答对了!非常感谢你的帮助。thumbnailStream.Seek(0)修复了它。我是一个相对较新的自学程序员。你能给我解释一下发生了什么事,或者给我指一指我能读到的文学作品的方向吗。再次感谢你的帮助!