возможно, пришло время переключиться на MVVM?
private string _a;
public string A
{
get { return _a; }
set { SetA(value, true); }
}
protected void SetA(string value, bool isUserInput)
{
_a = value;
if (isUserInput)
{
// aditional operations
}
OnPropertyChanged("A");
}
Пользовательский ввод в TextBox вызовет установщик свойства через привязку, isUserInput
будет true
.
<TextBox x:Name="a" Text="{Binding A}" />
Любые изменения в логике программы могут быть выполнены с использованием метода Set с флагом false
: SetA("new value", false);