J'ai un contrôle d'image WPF à mon avis. Lorsque l'image est chargée, je veux déclencher un événement qui est défini et exécuté dans ma vue de modèle. Comment puis-je faire ceci? Je ne sais pas comment faire cela en utilisant une commande.MVVM WPF Commande de feu lorsque l'image a été chargée (sur un événement chargé)
<Image Grid.Row="0"
Source="{Binding Path=ImageSrc, NotifyOnTargetUpdated=True, Converter={StaticResource imgToSrcConverter}}"
Visibility="{Binding ImgVisibility}"
RenderTransformOrigin="0,0"
SnapsToDevicePixels="True"
OverridesDefaultStyle="False"
TargetUpdated="targetUpdated"
Cursor="Hand"
RenderOptions.BitmapScalingMode="LowQuality"
RenderOptions.EdgeMode="Aliased">
<Image.Effect>
<DropShadowEffect Opacity="0.8" BlurRadius="8">
</DropShadowEffect>
</Image.Effect>
</Image>
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();
return bi;
}
return null;
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Voir modèle:
public Image ImageSrc
{
get
{
MemoryStream ms = new MemoryStream(GetImageAsByteArray());
Image img = Image.FromStream(ms);
// Here I call method to hide splash screen "Loading"
return img;
}
}
Avez-vous lier sa propriété Source à une propriété dans votre modèle de vue? Ensuite, vous pouvez simplement effectuer une action lorsque la propriété de modèle de vue getter est appelée. – Clemens
Qu'est-ce qu'une "vue de modèle"? Il est avantageux d'être précis avec ces termes. –
@Clemens - définir la propriété et terminer le chargement ne sont pas la même chose. –