参考JusterZhu视频和文档
<TextBox.Text>
<Binding Path="GivenName" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
<Binding.ValidationRules>
<local:AgeRangeRule></local:AgeRangeRule>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
public enum UpdateSourceTrigger
{
Default,
PropertyChanged,
LostFocus,
Explicit
}
这是一个名为UpdateSourceTrigger
的枚举类型,通常在WPF (Windows Presentation Foundation) 或其他 XAML (Extensible Application Markup Language) 基础的应用程序中使用。这个枚举用于指定数据绑定更新源(例如文本框中的数据)何时应该将其更改传递到数据绑定的目标(例如数据模型中的属性)。下面是枚举中各个成员的含义:
-
Default
:这表示数据绑定的更新源触发器将使用默认的行为。默认行为通常是取决于绑定的具体上下文,但通常等同于PropertyChanged
。 -
PropertyChanged
:当数据绑定的更新源的值更改时,立即将该更改传递到数据绑定的目标。这意味着每次源属性更改时都会触发数据绑定。 -
LostFocus
:数据绑定的更新源在失去焦点时(通常是在用户在界面元素(如文本框)中输入数据后移出该元素)才将更改传递到数据绑定的目标。这允许用户在输入数据时进行编辑,并只在离开输入字段时触发绑定。 -
Explicit
:数据绑定的更新源需要显式的触发才会将更改传递到数据绑定的目标。这通常需要编程方式触发数据绑定更新,而不是自动或基于用户输入触发。
这些不同的更新源触发器允许开发人员根据应用程序的需要来控制数据绑定的行为,以确保数据在界面元素和数据模型之间同步时满足特定的需求。
默认情况下,如果不明确指定数据绑定的更新源触发器(UpdateSourceTrigger
),那么在大多数情况下,WPF 和其他 XAML 框架将使用Default
作为默认的更新源触发器。
在许多常见情况下,Default
和PropertyChanged
等效,这意味着当数据绑定的更新源的值更改时,将立即将更改传递到数据绑定的目标。因此,默认情况下,数据绑定通常会实时地反映源属性的更改。
需要注意的是,实际的默认行为可能会根据具体的XAML框架、控件和绑定上下文而有所不同。因此,为了明确控制数据绑定的行为,有时建议显式指定所需的更新源触发器。