При использовании привязки данных в WPF, если вы установите для свойства Mode
значение TwoWay
, вы можете контролировать момент, когда свойство источника будет обновлено, установив свойство UpdateSourceTrigger
. Этот сценарий возможен для потока обновлений target -> source. Но как вы можете контролировать то же самое для источника -> целевого потока обновлений? Я не могу найти эквивалентную недвижимость.
Например, допустим, у меня есть два текстовых поля в моем окне, и я хочу связать текстовые свойства обоих текстовых полей. XAML может выглядеть так:
<TextBox
Name="txt1"
Text="{Binding ElementName=txt2, Path=Text, Mode=TwoWay,
UpdateSourceTrigger=LostFocus}"
/>
<TextBox
Name="txt2"
/>
Когда пользователь вводит текст в txt1
TextBox, свойство Text
txt2
Textbox будет обновляться по мере изменения свойства Text
, просто если бы я реализовал событие TextChanged на txt1
.
Однако, когда пользователь вводит текст в txt2
TextBox, свойство Text
для txt1
Textbox будет обновлено после того, как txt2
TextBox потеряет фокус, потому что для свойства UpdateSourceTrigger
установлено значение LostFocus
, просто если бы я реализовал событие LostFocus.
Есть ли возможность в привязке данных WPF обновлять целевое свойство после того, как элемент управления исходным свойством теряет фокус? В нашем примере: что нужно сделать с приведенным выше кодом XAML, чтобы свойство Text
txt2
TextBox обновлялось только после того, как txt1
TextBox потерял фокус, а не после изменения его свойства Text?
Спасибо!