У меня есть TextBox, привязанный к значению double. Я установил строковый формат для привязки к N2. Теперь, когда я когда-либо вношу изменения в TextBox, которые вызывают срабатывание StringFormat, срабатывает TargetUpdatedTextBox. Вот некоторые примеры:
Мне нужно одно из этих:
TargetUpdated при форматировании чиселTargetUpdated от времени, когда цель действительно была обновленаНекоторые вещи из кода, которые могут вызвать это:
TextBox находится внутри UserControl, но я устанавливаю e.Handled на true в его событии TargetUpdatedUserControl, а также в родительской форме вызываются некоторые события мыши и клавиатуры, но они что-то делают, только если нажата какая-то специальная клавишаВот привязка UserControl:
Text = "{Binding SomeAmount, Mode=TwoWay, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged, StringFormat='{}{0:N2}'}"
Вот для TextBox в UserControl:
Text = "{Binding Text}"
У меня есть DependencyProperty под названием Text в моем UserControl. Все работает так, как я хочу, кроме вызова TargetUpdatedStringFormat. Скажите, если вам понадобится еще немного моего кода.
РЕДАКТИРОВАТЬ1:
StringFormat вызывает запуск как событий UserControl, так и TextBoxTargetUpdated, поэтому я не думаю, что это из-за вложенности элементов управления. Кроме того, TargetUpdated вызывается перед событием TextUpdated.
РЕДАКТИРОВАТЬ2:
Оба объекта object sender и DataTransferEventArgs e идентичны, когда фактическая цель была обновлена и когда StringFormat внес некоторые изменения. И поскольку различить два вызова невозможно, я должен каким-то образом предотвратить запуск события.




