<TextBlock Name="txtName" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />
“Name”是在运行时与TextBlock绑定的对象的属性。我已经实现了INotifyPropertyChanged,所以代码工作正常。我的问题是:如果我将PropertyChanged替换为Default,它仍然可以工作吗?它们之间有什么区别?
答案 0 :(得分:10)
根据MSDN,UpdateSourceTrigger
的大多数属性的默认值为PropertyChanged
,LostFocus
属性的默认值为TextBox.Text
。
在您的情况下,您可能绑定到默认设置为PropertyChanged
的属性,因此您不会看到任何差异。
答案 1 :(得分:1)
PropertyChanged
告诉Binding
每当您收到该属性的PropertyChanged
通知时,请更新目标值。
对于某些控件,例如TextBox
,使用Default
,它只会更新绑定目标,例如,它会失去焦点。当您在其上设置UpdateTrigger='PropertyChanged'
时,它会在您键入时更新绑定目标。
答案 2 :(得分:0)
对于TextBox控件 当我们使用UpdateSourceTrigger = Default意味着当源对象失去焦点时,目标中的值将更新。 当我们使用UpdateSourcetrigger = PropertyChanged意味着当源对象文本发生更改时(即使我们键入单个字符),更改将立即反映在目标中。 以上情况适用于TextBox控件,因为大多数控件的默认值仅为PropertyChanged