Binding.UpdateSourceTrigger 属性

定义

获取或设置一个值,该值确定双向绑定的绑定源更新的计时。

public:
 property UpdateSourceTrigger UpdateSourceTrigger { UpdateSourceTrigger get(); void set(UpdateSourceTrigger value); };
UpdateSourceTrigger UpdateSourceTrigger();

void UpdateSourceTrigger(UpdateSourceTrigger value);
public UpdateSourceTrigger UpdateSourceTrigger { get; set; }
var updateSourceTrigger = binding.updateSourceTrigger;
binding.updateSourceTrigger = updateSourceTrigger;
Public Property UpdateSourceTrigger As UpdateSourceTrigger
<Binding UpdateSourceTrigger="updateSourceTriggerMemberName"/>

属性值

UpdateSourceTrigger 值之一。 默认值为 Default,它计算为 PropertyChanged 大多数依赖属性的更新行为,但 LostFocus 计算为 属性的 TextBox.Text

注解

大多数依赖属性的默认行为为 PropertyChanged。 但是, TextBox.Text 属性的默认行为是 LostFocus。 对于 绑定到TextBox.Text,可以 UpdateSourceTrigger 更改 ,如下所示:

<TextBox Text="{x:Bind MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

但是,它不会对另一个 TextBox 控件(如 NumberBox)的控件模板中的 产生任何影响。 例如,此设置 UpdateSourceTrigger 不起作用。

<!-- This UpdateSourceTrigger setting has no effect. -->
<NumberBox Text="{x:Bind MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

UpdateSourceTrigger 行为的另一个选择是将 值设置为 Explicit。 当双向绑定的 UpdateSourceTrigger 值作为 Explicit时,必须对相关的 BindingExpression 显式调用 UpdateSource,以便更改的目标值更新数据源。 使用 FrameworkElement.GetBindingExpression 从存在绑定到依赖属性的对象获取 BindingExpression并且该绑定是具有 的UpdateSourceTrigger="Explicit"双向绑定。

在绑定已附加到目标元素和目标属性之后,无法设置 Binding 对象的属性值。 如果尝试此操作,将收到运行时异常。

适用于

另请参阅