【问题标题】:UpdateSourceTrigger's Default vs PropertyChanged?UpdateSourceTrigger 的 Default vs PropertyChanged?
【发布时间】:2010-12-13 09:24:34
【问题描述】:
<TextBlock Name="txtName" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />

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

【问题讨论】:

    标签: wpf binding


    【解决方案1】:

    根据MSDN,对于大多数属性,UpdateSourceTrigger 的默认值为PropertyChanged,对于TextBox.Text 属性,默认值为LostFocus

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2011-09-03
          • 1970-01-01
          • 2014-10-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-25
          相关资源
          最近更新 更多