Windows Phone 8 - 使用绑定将字节 [] 数组加载到 XAML 图像中 [英] Windows Phone 8 - Load byte[] array into XAML image with Binding
问题描述
我将图像存储为 byte[] 数组,因为我无法将它们存储为 BitmapImage.ShotItem 类将存储在 IsolatedStorage 中的 observableCollection 中.
I am storing images as byte[] arrays because I can't store them as BitmapImage. The ShotItem class will be stored in IsolatedStorage in an observableCollection.
namespace MyProject.Model
{
public class ShotItem : INotifyPropertyChanged, INotifyPropertyChanging
{
private byte[] _shotImageSource;
public byte[] ShotImageSource
{
get
{
return _shotImageSource;
}
set
{
NotifyPropertyChanging("ShotImageSource");
_shotImageSource = value;
NotifyPropertyChanged("ShotImageSource");
}
}
...
}
}
在我的 xaml 文件中,我有以下内容:
In my xaml file I have the following:
<Image Source="{Binding ShotImageSource}" Width="210" Height="158" Margin="12,0,235,0" VerticalAlignment="Top" />
不幸的是,我无法将图像作为一个字节直接加载到 xaml 中的图像容器中.我不知何故需要将 ShotImageSource byte[] 转换为 BitmapImage.我正在加载相当多的图像,所以这是否也必须异步完成.
Unfortunately I can't load the image as a byte straight into the Image container in the xaml. I somehow need to convert the ShotImageSource byte[] to BitmapImage. I am loading quite a few images so would this have to also be done asynchronously.
我尝试使用转换器绑定,但我不确定如何让它工作.任何帮助将不胜感激:)
I tried to use a converter binding, but I wasn't sure on how to get it to work. Any help would be greatly appreciated :).
推荐答案
这里是 Converter
的代码,它将您的 byte[]
转换为 位图图像
:
Here is the code for a Converter
that will convert your byte[]
into a BitmapImage
:
public class BytesToImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null && value is byte[])
{
byte[] bytes = value as byte[];
MemoryStream stream = new MemoryStream(bytes);
BitmapImage image = new BitmapImage();
image.SetSource(stream);
return image;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
这篇关于Windows Phone 8 - 使用绑定将字节 [] 数组加载到 XAML 图像中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!