J'ai un contrôle d'image WPF dont la propriété source est liée à une propriété qui renvoie une image. Puis j'ai un convertisseur qui prend l'image liée à la propriété source et la convertit en bitmapImage. Lorsque le téléchargement de bitmapimage est terminé, je voudrais exécuter une méthode dans mon modèle de vue, donc je me suis abonné à l'événement DownloadCompleted dans BitmapImage. Alors, comment puis-je appeler la méthode dans le modèle de vue du convertisseur? cela romprait-il les principes du MVVM?WPF MVVM: Appel d'une méthode dans un modèle de vue à partir d'un convertisseur
Converter:
public class ImgToSrcConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
Image image = value as Image;
if (image != null)
{
MemoryStream ms = new MemoryStream();
image.Save(ms, image.RawFormat);
ms.Seek(0, SeekOrigin.Begin);
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = ms;
bi.EndInit();
bi.DownloadCompleted += new EventHandler(bi_DownloadCompleted);
return bi;
}
return null;
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
private void bi_DownloadCompleted(object sender, EventArgs e)
{
// Call my method in view model
}
}
S'il est important pour votre application d'avoir 'BitmapImage', alors la propriété' ImageSrc' dans le modèle de vue doit être de type 'BitmapImage' et vous n'aurez pas besoin de convertisseur – ASh
Je ne suis pas sûre de comprendre ce que vous ' Re essayant de réaliser? Pourriez-vous élaborer un peu sur ce que vous essayez exactement de faire? Que voulez-vous dire par "téléchargement"? Que ferez-vous lorsque ce "téléchargement" sera terminé? –