可以创建一个类,该类允许通过从 IValueConverter 继承在源和目标之间转换数据格式。例如,您可能希望有一个颜色列表,其中的颜色作为 RGBA 值存储,但在 UI 中以颜色名称来显示。通过实现 Convert 和 ConvertBack,可以在绑定引擎在目标和源之间传递数据值时,更改数据值的格式。
public class BinaryToImageConverter: IValueConverter { public BinaryToImageConverter() { } //具体的实现方法 public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is Binary) { BitmapImage bi = new BitmapImage(); bi.SetSource(new MemoryStream((value as Binary).Bytes)); return bi; } else return null; } } //这里由于我只用于显示图像,所以没有实现相应的方法 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
<Grid> <Grid.Resources> <local:BinaryToImageConverter x:Key="BinaryConventer"/> </Grid.Resources> <Image Source="{Binding user_headPhoto,Converter={StaticResource BinaryConventer}}"/> </Grid>