2014-03-27 58 views
1

我有一個Silver light應用程序需要在Datagrid中綁定圖像,我有一個圖像作爲byte[]。我有大約500+數據在observablecollection<User>我怎麼能將我的數據轉換爲圖像,在asp.net我們可以用戶datarowbinding事件,但在silverlight我們怎麼能做到這一點將字節[]轉換爲silverlight中的圖像

回答

1

在傳統的asp.net我們有這種類型的事件從那我們可以管理行綁定,在Silverlight中,您可以使用ivalueconvertor。 結合具有圖像屬性格式數據圖像aslso在圖像定義爲轉換字節轉換器[]到圖像

<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(); 
     } 
    }