Binding works without INotifyPropertyChanged, why?
This is how we do it normally: public class ViewModel : INotifyPropertyChanged { string _test; public string Test { get { return _test; } set { _test = value; OnPropertyChanged(); } } public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged([CallerMemberName] string property = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property)); } Now our property can be used by multiple elements in the view, e.g.: <TextBox Text="{Binding Test, UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Text="{Binding Test}" /> Changing value in TextBox will