【问题标题】:Convert Byte [] to image in silverlight在silverlight中将字节[]转换为图像
【发布时间】:2014-03-27 08:43:56
【问题描述】:
我有一个 Silver light 应用程序需要在 Datagrid 中绑定图像,我有一个图像为 byte[]。我在observablecollection<User>我有大约 500 多个数据@如何将我的数据转换为图像,在 asp.net 中我们可以使用 datarowbinding 事件,但在 silverlight 中我们该怎么做
【问题讨论】:
标签:
image
silverlight
bytearray
【解决方案1】:
在传统的 asp.net 中,我们有这样的事件类型,我们可以从中管理行绑定,在 silverlight 中,您可以使用 ivalueconvertor 来实现。
将您的图像与图像属性数据绑定,同时定义您的转换器以将字节 [] 转换为图像
<UserControl.Resources>
<Myerp:ConvertByteArrayToImge x:Key="ConvertByteArrayToImge"></Myerp:ConvertByteArrayToImge>
</UserControl.Resources>
在你的形象中
<Image x:Name="UploadedIcon" Grid.Column="0" Height="16" Width="16" HorizontalAlignment="Left" VerticalAlignment="Center" Source="{Binding Icon,Converter={StaticResource ConvertByteArrayToImge}}" />
转换器类
public class ConvertByteArrayToImge : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is byte[])
{
MemoryStream memStream = new MemoryStream((Byte[])value);
memStream.Seek(0, SeekOrigin.Begin);
BitmapImage empImage = new BitmapImage();
if (memStream.Length > 0)
empImage.SetSource(memStream);
return empImage;
}
else
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}