Практическое руководство. Управление обновлением источника из поля TextBox
В этом разделе описывается использование UpdateSourceTrigger свойство, чтобы управлять временем обновлений источника привязки. В этом разделе используются TextBox элемента управления в качестве примера.
Пример
TextBox.Text свойство имеет значение по умолчанию UpdateSourceTrigger значение LostFocus. Это означает, что если приложение имеет TextBox с привязкой к данным TextBox.Text свойство, введенный текст в TextBox обновляет источник до TextBox теряет фокус (например, при нажатии кнопки с TextBox).
Источник обновляться по мере ввода, задайте UpdateSourceTrigger привязки PropertyChanged. В следующем примере, выделенные строки кода показывают, что Text
свойствах обоих TextBox и TextBlock привязаны к тому же свойству источника. UpdateSourceTrigger Свойство TextBox привязки имеет значение PropertyChanged.
Warning
It looks like the sample you are looking for does not exist.
В результате TextBlock отображается тот же текст (поскольку источник изменяется), который пользователь вводит текст в TextBox, как показано на следующем снимке экрана примера:
Если у вас есть диалоговое окно или редактируемая пользователем форма и требуется отложить обновление источника, пока пользователь не завершит редактирование поля и нажимает кнопку «ОК», можно задать UpdateSourceTrigger значение привязки в Explicit, как показано в следующем примере:
<TextBox Name="itemNameTextBox"
Text="{Binding Path=ItemName, UpdateSourceTrigger=Explicit}" />
При задании UpdateSourceTrigger значение Explicit, исходное значение изменяется, только когда приложение вызывает UpdateSource метод. В следующем примере показан вызов UpdateSource для itemNameTextBox
:
// itemNameTextBox is an instance of a TextBox
BindingExpression be = itemNameTextBox.GetBindingExpression(TextBox.TextProperty);
be.UpdateSource();
Note
Можно использовать ту же методику для свойств других элементов управления, но имейте в виду, что для большинства других свойств по умолчанию UpdateSourceTrigger значение PropertyChanged. Дополнительные сведения см. в разделе UpdateSourceTrigger страницу свойств.
Note
UpdateSourceTrigger Свойство относится к обновлению источника и поэтому подходит только для TwoWay или OneWayToSource привязки. Для TwoWay и OneWayToSource привязки для работы, исходный объект должен предоставить уведомление об изменениях свойств. Можно изучить примеры, приведенные в этом разделе, для получения дополнительной информации. Кроме того, см. раздел Реализация уведомления об изменении свойства.