如何在带有图像的列表框上使用Data Virtualization?

时间:2011-05-25 06:47:38

标签: silverlight windows-phone-7

新手在这里..

这是列表框数据虚拟化的链接 http://blogs.msdn.com/b/ptorr/archive/2010/08/16/virtualizing-data-in-windows-phone-7-silverlight-applications.aspx?PageIndex=2#comments

但是我不知道在哪里放置可能拥有图像等的对象。或者在这个VirtualizedDataSource上添加新对象。

编辑:我想在这里说的是,这个VirtualizedDataSource是否有自定义对象的示例用法?自定义对象与图像,文本等... 因为在样本中,数据只是一个字符串..

1 个答案:

答案 0 :(得分:0)

无论您是否使用虚拟化,将图像作为项目放入ListBox的方式都是相同的。将列表框的ItemsSource属性绑定到对象集合,然后使用DataTemplate定义如何呈现每个对象,例如将XAML Image的Source绑定到对象上的BitmapImage属性。

<Image 
    Source="{Binding ABitmapImageProperty}"
    ...
/>

虚拟化发挥作用,一旦相应的ListBox元素滚动到页面之外,您可能不希望将这些BitmapImages保留在内存中。您可以通过为VirtualizingStackPanel.CleanUpVirtualizedItem事件设置处理程序在标准ListBox中执行此操作:http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.cleanupvirtualizeditemevent(v=VS.95).aspx

如果您使用Control Toolbox的LongListSelector,那么您可以处理Link和Unlink事件以执行相同的操作。