WPF tiene convertidores incorporados para ciertos tipos. Si vincula la propiedad de la Imagen Source
a un valor de string
o Uri
, bajo el capó WPF utilizará un ImageSourceConverter para convertir el valor a ImageSource
.
Así
<Image Source="{Binding ImageSource}"/>
funcionaría si la propiedad ImageSource era una representación de cadena de un URI válido a una imagen.
Por supuesto, puede rodar su propio conversor Encuadernación:
public class ImageConverter : IValueConverter
{
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
return new BitmapImage(new Uri(value.ToString()));
}
public object ConvertBack(
object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
y utilizar de esta manera:
<Image Source="{Binding ImageSource, Converter={StaticResource ImageConverter}}"/>
(En realidad, el convertidor de tipos no crea una 'BitmapImage', sino otra subclase de' ImageSource': 'BitmapFrameDecode', que es interna.) –
@ H.B. ¿Cómo volverías a convertirte si quisieras conservar el cambio de imagen? – Igor
Alternativa a un convertidor: Haga que su propiedad se vincule (aquí: 'ImageSource') de tipo' Uri' o 'BitmapImage' y envíe allí. Si necesita tratar con posibles valores 'null' (error de conversión, etc.) agregue' TargetNullValue = {x: Null} 'a su enlace. – Gerrit