我有一个Silverlight 2.0应用程序,它将列表框绑定到包含BitMap属性(用于导航)的类的集合。我已经将XAP中的图像作为内容包含在内并手动创建了BitMap并将其设置为控件源,我还将图像作为资源嵌入到DLL中,并从manifestresourcestream获取图像并设置图像。当使用Silverlight 2.0插件显示XAP时,这两个路径都很有效,所以我知道我的图像正在正确部署。不幸的是,当在具有Silverlight 3.0插件的计算机上查看时,这些方法都不会在列表框中显示图像。
请注意,仅当绑定发生在Listbox的ItemTemplate中时才会出现此问题。如果我在列表框之外设置相同的属性,它似乎找到图像并正常工作。
知道2.0和3.0之间的ListBox绑定有什么变化吗?我确实在机器上构建了Silverlight插件3.0.40307,我可以重现错误。
-Kevin
答案 0 :(得分:1)
好的......找到了解决方案(感谢Silverlight主板上的一些帮助):
首先,它仅适用于Silverlight 3.0插件的完整版本。这带来了一个奇怪的问题(如下所述)。
其次,我不得不从绑定直接切换到Image或Bitmap类,而是使用Imagesource类(可以使用传递给构造函数的Bitmap轻松实例化)。足够简单......不知道为什么这在SL 3.0中是必需的但不是2.0但是它破坏了我的代码。我的代码仍然是针对2.0插件编写和编译的,但只是在拥有它的计算机上的3.0插件中运行。
这让我想到了一个奇怪的问题......我有可用于测试的SL 2.0,SL 3.0(Beta)和SL 3.0(完整版)的VM或桌面。我的插件现在可以在SL 2.0和SL 3.0(完整版)中正常工作,但在SL 3.0(Beta)中却不行。我没有得到警告,它打开正常,只是我的图像没有绑定。所以我担心的是,许多面向开发人员/技术人员都将拥有3.0版本,它仍然运行2.0插件,因为它向后兼容。他们不会因为任何原因而被迫升级以运行我的网站。
如果您有以下任何一种环境,请访问相关网站的链接:http://stlouisdayofdotnet.com/DayOfDotnet.html