Что вы делаете, это наблюдаете за изменением в методе набора свойств вашего ViewModel.
XAML будет выглядеть примерно так:
<TextBox Text="{Binding Mode=TwoWay,
Path=ViewModelProperty,
UpdateSourceTrigger=PropertyChanged}" />
А в классе ViewModel вы определяете свойство следующим образом:
Private _ViewModelProperty As String
Public Property ViewModelProperty As String
Get
Return _ViewModelProperty
End Get
Set(ByVal value As String)
' your test for "TextChanged" goes here
If value <> _ViewModelProperty Then
_ViewModelProperty = value
OnViewModelPropertyChanged()
End If
End Set
End Property
Private Sub OnViewModelPropertyChanged()
' logic for handling changes goes here
End Sub
Это побочный эффект выполнения OnViewModelPropertyChanged()
каждый раз, когда вы назначаете новое значение для ViewModelProperty
, но этого можно избежать, назначив вспомогательное поле вместо свойства.
В противном случае вы реализуете интерфейсы ICommand, которые их используют; это зависит от того, насколько сложными вам нужны вещи, чтобы получить.