По умолчанию UpdateSourceTrigger vs PropertyChanged? - PullRequest
7 голосов
/ 13 декабря 2010
<TextBlock Name="txtName" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />

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

Ответы [ 3 ]

11 голосов
/ 13 декабря 2010

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

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

1 голос
/ 13 декабря 2010

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

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

0 голосов
/ 24 мая 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...