Windows Phone 8 – 使用绑定将byte 数组加载到XAML映像中

我将图像存储为byte []数组,因为我无法将它们存储为BitmapImage。 ShotItem类将被存储在一个observableCollection的IsolatedStorage中。

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文件中,我有以下几点:

 <Image Source="{Binding ShotImageSource}" Width="210" Height="158" Margin="12,0,235,0" VerticalAlignment="Top" /> 

不幸的是,我无法将图像作为一个字节直接加载到xaml中的Image容器中。 我不知何故需要将ShotImageSource byte []转换为BitmapImage。 我加载了不less图像,所以这也必须asynchronous完成。

我试图使用转换器绑定,但我不知道如何让它工作。 任何帮助将不胜感激 :)。

Solutions Collecting From Web of "Windows Phone 8 – 使用绑定将byte 数组加载到XAML映像中"

这里是一个Converter的代码,将您的byte[]转换成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(); } }