UpdateSourceTrigger的默认值与PropertyChanged?

时间:2010-12-13 09:24:35

标签: wpf binding

<TextBlock Name="txtName" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />

“Name”是在运行时与TextBlock绑定的对象的属性。我已经实现了INotifyPropertyChanged,所以代码工作正常。我的问题是:如果我将PropertyChanged替换为Default,它仍然可以工作吗?它们之间有什么区别?

3 个答案:

答案 0 :(得分:10)

根据MSDNUpdateSourceTrigger的大多数属性的默认值为PropertyChangedLostFocus属性的默认值为TextBox.Text

在您的情况下,您可能绑定到默认设置为PropertyChanged的属性,因此您不会看到任何差异。

答案 1 :(得分:1)

PropertyChanged告诉Binding每当您收到该属性的PropertyChanged通知时,请更新目标值。

对于某些控件,例如TextBox,使用Default,它只会更新绑定目标,例如,它会失去焦点。当您在其上设置UpdateTrigger='PropertyChanged'时,它会在您键入时更新绑定目标。

答案 2 :(得分:0)

对于TextBox控件 当我们使用UpdateSourceTrigger = Default意味着当源对象失去焦点时,目标中的值将更新。 当我们使用UpdateSourcetrigger = PropertyChanged意味着当源对象文本发生更改时(即使我们键入单个字符),更改将立即反映在目标中。 以上情况适用于TextBox控件,因为大多数控件的默认值仅为PropertyChanged