I have an WPF image control in my view. When image is loaded I want to fire an event that is defined and executed in my model view. How can I do this? I do not know how to do this using a command.
<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();
}
}
View model:
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;
}
}