'Change image source when property value changed

I have this textblock and image icon in HomePage.xaml,

<Window 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        x:Class="MyApp.HomePage">
        d:DataContext="{d:DesignInstance Type=HomePageViewModel}">
<Grid>
     <TextBlock Text="{Binding Username}"></TextBlock>
     <Image Source="{Binding ImageSource}" Width="45"></Image>
</Grid>
</Window>

I have this HomePageViewModel class but these Username and ImageSource properties are in another one viewmodel named WebAppViewModel.

internal class WebAppViewModel
{
   private string userName;
   public string Username
        {
            get
            {
                return userName;
            }
            set
            {
                userName = value;
                OnPropertyChanged();
            }
        }
        
        private bool hasSignedIn;
        public bool HasSignedIn
        {
            get
            {
                return hasSignedIn;
            }
            set
            {
                hasSignedIn = value;
                OnPropertyChanged();
            }
        }

        public string ImageSource
        {
         get; set;
        }
}

Depends on HasSignedIn value, need to show the image (Grey icon image/ Green icon image)

This user data coming from another one service from which I am assigning the values for these properties.

How I can bind these properties in HomePage.xaml ? and when HasSignedIn value changes that needs to be notified, so that proper color image can be shown and if HasSignedIn is false then TextBlock should be invisible.



Solution 1:[1]

I have used OnPropertyChanged() in the ImageSource set property.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1