WPF dispose de convertisseurs intégrés pour certains types. Si vous liez l'élément Source
à une propriété string
ou Uri
sous le capot, WPF utilisera une valeur de type ImageSourceConverter pour convertir la valeur en un ImageSource
.
Alors
<Image Source="{Binding ImageSource}"/>
fonctionnerait si la propriété ImageSource était une représentation en chaîne d'une URI valide vers une image.
Vous pouvez bien sûr créer votre propre convertisseur Binding :
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();
}
}
et l'utiliser comme ceci :
<Image Source="{Binding ImageSource, Converter={StaticResource ImageConverter}}"/>
1 votes
Malheureusement, la raison réelle de cet échec n'est pas expliquée dans les réponses. Voir ce ( Pour une raison quelconque, WPF/XAML ne prend pas en charge la liaison directe d'un objet Uri à l'UriSource d'un objet BitmapImage. Lors de l'exécution, l'application échoue avec une erreur, )