Silverlight 2.0绑定图像与Silverlight 3.0的区别

3
我有一个使用Silverlight 2.0编写的应用程序,该应用程序将listbox绑定到一个包含BitMap属性的类集合(用于导航)。我已经将图像包含在XAP中并手动创建了BitMap,将其设置为控件源,并且我还将图像嵌入DLL资源中,从manifestresourcestream获取图像并设置图像。这两种方法在使用Silverlight 2.0插件显示XAP时都可以正常工作,因此我知道我的图像被正确部署了。不幸的是,在安装了Silverlight 3.0插件的机器上查看时,这些方法都无法在listbox中显示图像。
请注意,仅当绑定发生在Listbox的ItemTemplate中时才会发生此问题。如果我在listbox之外设置相同的属性,则似乎可以找到图像并正常工作。
您知道ListBox在2.0和3.0之间的绑定发生了什么变化吗?我在我能够重现错误的计算机上有3.0.40307版本的Silverlight插件。
-Kevin

ListBox和DataGrid的绑定都有一些变化(我目前正在遭受DataGrid的痛苦)。我不知道具体发生了什么变化导致这些问题,但我至少想承认你的痛苦。 - Jeff Yates
我从应用程序的另一个区域发现的一件事是,ListBox中数据绑定图像的唯一方法是将图像留在服务器上,并绑定到使用指向服务器的URI构建的BitMap。目前,这是我正在使用的解决方法。我希望我知道发生了什么变化,因为这有点令人沮丧... - Kevin Grossnicklaus
删掉上面的评论。应用程序的另一个区域使用了ItemsControl,似乎与相同的数据绑定正常工作。错误似乎出现在ListBox中。 - Kevin Grossnicklaus
1个回答

1

好的...找到了一个解决方案(感谢 Silverlight 论坛上的一些帮助):

首先,它只适用于完整版本的 Silverlight 3.0 插件。这引发了一个奇怪的问题(下面描述)。

其次,我不得不从直接绑定到 Image 或 Bitmap 类切换,并改为使用 Imagesource 类(可以通过传递给构造函数的 Bitmap 轻松实例化)。很简单...不知道为什么在 SL 3.0 中需要这样做,但在 2.0 中不需要,但它破坏了我的代码。我的代码仍然是针对 2.0 插件编写和编译的,但在安装了 3.0 插件的计算机上运行。

这就带来了一个奇怪的问题...我有可供测试的VM或桌面,其中包括SL 2.0、SL 3.0(Beta)和SL 3.0(完整版)。我的插件现在在SL 2.0和SL 3.0(完整版)中运行良好,但在SL 3.0(Beta)中却无法正常工作。我没有收到任何警告,它也可以正常打开,只是我的图像无法绑定。因此,我的担忧是,许多开发人员/技术人员会使用仍然运行2.0插件的3.0 beta版本,因为它向后兼容。他们没有强制升级以运行我的网站。
如果您有任何这些环境,请访问以下链接查看相关网站:http://stlouisdayofdotnet.com/DayOfDotnet.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接