In my M-V-VM application I have to show the user’s avatar. The image is provided in a property of type ImageSource the ViewModel object. So that’s what I have currently:
<Image Source="{Binding Path=UserAvatar}"/>
However, some users may not have an avatar configured, so UserAvatar is null. In that case I want to show a default avatar. Noone but the view must know about the default image, because it’s just a concern of presentation.
So how can I either show the image with the given ImageSource, or a specific resource if ImageSource is null. Do I have to use some kind of DataTemplate with DataTriggers? Since now I only used them for ItemsControls, so I don’t know.
As you guessed correctly, templates and triggers are indeed your friend here.
Here is an implementation using the
ContentControl:And in the situation when your default thingy is no
ImageSource, and you wish to play around a bit with other controls, you can always resort to theVisibiltyproperty:Hope this helps..