2010-12-13 2 views
7
<TextBlock Name="txtName" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" /> 

«Имя» - это свойство объекта, связанного с TextBlock во время выполнения. Я реализовал INotifyPropertyChanged, поэтому код работает нормально. Мой вопрос: если я заменил PropertyChanged на Default, он все равно будет работать? В чем разница между ними?UpdateSourceTrigger по умолчанию vs PropertyChanged?

ответ

10

Согласно MSDN, значение по UpdateSourceTrigger по умолчанию имеет PropertyChanged для большинства свойств и LostFocus для TextBox.Text собственности.

В вашем случае вы, вероятно, привязаны к свойству, для которого по умолчанию уже установлено значение PropertyChanged, поэтому вы не увидите никакой разницы.

1

PropertyChanged сообщает Binding, что всякий раз, когда вы получаете уведомление PropertyChanged об этом имуществе, обновите его значение по назначению.

Для некоторых элементов управления, таких как TextBox, используя Default, он только обновляет место назначения привязки, когда, например, он теряет фокус. Когда вы установите для него UpdateTrigger='PropertyChanged', он будет обновлять привязку при вводе.

0

Для управления TextBox Когда мы используем UpdateSourceTrigger = Значение по умолчанию означает, что исходный объект теряет фокус, значение в цели будет обновляться. Когда мы используем UpdateSourcetrigger = PropertyChanged, когда текст исходного объекта изменяется (даже когда мы вводим один символ) сразу же, как изменение будет отражено в цели. Вышеприведенный для управления TextBox по умолчанию для большинства элементов управления является только PropertyChanged

Смежные вопросы