UpdateSourceTrigger的Default与PropertyChanged有什么区别?

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

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

3个回答

12
根据MSDN的说明,UpdateSourceTrigger对于大多数属性来说默认值是PropertyChanged,而对于TextBox.Text属性来说则是LostFocus
在您的情况下,您可能正在绑定一个已经设置为PropertyChanged默认值的属性,所以您不会看到任何差异。

1

PropertyChanged 是告诉 Binding,每当该属性接收到 PropertyChanged 通知时,在目标上更新它的值。

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


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接