Привязка работает без INotifyPropertyChanged, почему?

Вот как мы обычно это делаем:

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));
}

Теперь наше свойство может использоваться несколькими элементами в представлении, например:

<TextBox Text="{Binding Test, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock Text="{Binding Test}" />

Изменение значения вTextBox обновит содержимоеTextBlock, Так же как мы можем установить значение в модели представления и представление обновит его автоматически.

Если мы напишем модель представления, как это

public class ViewModel
{
    public string Test { get; set; }
}

затемвид все еще работает (например, изменение значения вTextBox будет обновлятьTextBlock). Конечно, невозможно легко обновитьTest значение от модели представления больше (больше никакого события, чтобы повыситься). Но мой вопрос о представлении:Почему вид способен работать? Создает ли он что-то более в фоновом режиме или это логика, которая проверяет что-то?

Ответы на вопрос(1)

Ваш ответ на вопрос