Хорошо - установка свойства Text во время его изменения / пока он только что изменился, кажется, явно перехватывается классом TextBox :
Просто используйте Reflector, чтобы заглянуть внутрь TextBox.OnTextPropertyChanged (сокращено):
TextBox box = (TextBox) d;
if (!box._isInsideTextContentChange)
{
string newValue = (string) e.NewValue;
//...
box._isInsideTextContentChange = true;
try
{
using (box.TextSelectionInternal.DeclareChangeBlock())
{
//...
} //Probably raises TextChanged here
}
finally
{
box._isInsideTextContentChange = false;
}
//...
}
Поле _isInsideTextContentChange установлено в значение true до того, как событие TextChanged будет инициировано.При повторном изменении свойства Text событие TextChanged , таким образом, больше не вызывается.
Следовательно: Feature; -)