最近在做一个Silverlight的图书管理系统,当我想显示数据库中的二进制图片时费了很大的周折,大家都知道,Silverlight中.图像的显示是通过imagesource来控制显示的.开始我为了实现二进制到图像的转换,而专门写了一个BinarySource类
class BinarySource:BitmapSource
{
public BinarySource(Binary Buff)
{
//somecode
}
}
但是在实现数据绑定的时候依然很麻烦,因为我是将数据源直接绑定在显示控件的DataContext上,没办法直接用上述类来处理.经过查阅MSDN发现,在Silverlight中已经有了这个问题的解决方法.即IValueConverter接口.MSDN上的说法是:
可以创建一个类,该类允许通过从 IValueConverter 继承在源和目标之间转换数据格式。例如,您可能希望有一个颜色列表,其中的颜色作为 RGBA 值存储,但在 UI 中以颜色名称来显示。通过实现 Convert 和 ConvertBack,可以在绑定引擎在目标和源之间传递数据值时,更改数据值的格式。
具体实现时可参考我写的代码:
在xaml中即可调用:
这样,就可以轻松的实现图片啦~~