【问题标题】:Advantage of Binding?绑定的好处?
【发布时间】:2013-05-22 03:55:32
【问题描述】:

我不确定我是否完全理解绑定的优势。例如,如果我想将字符串值绑定到 TextBlock,我需要执行以下操作:

  1. 创建一个扩展 INotifyPropertyChanged 的​​类
  2. 向该类添加一个字符串(例如:MyString)
  3. 扩展 MyString 的 set 方法,使其调用另一个方法(例如:OnPropertyChanged)
  4. 创建 OnPropertyChanged 方法以调用 PropertyChangedEventHandler 事件

然后我需要创建该类的一个新实例,将我的 TextBlock.DataContext 设置为指向该类,最后为绑定添加 XAML 位。

谁能解释一下这比简单设置的优势:

TextBlock.Text = MyString;

谢谢!

【问题讨论】:

    标签: wpf binding


    【解决方案1】:
    1. MyString 的任何更改都不会自动反映在您的用户界面中。
    2. 您的代码中会出现“当此事件发生时,更新这些数据”,因此您实际上是在为每个视图编写自己的杂乱数据绑定逻辑。

    【讨论】:

      【解决方案2】:

      优点是您可以在多个位置更改和显示值,而无需在每次值更改时更新某些方法来添加另一个 TextBlock 赋值。任何新的显示控件只是将自身绑定到属性,其余的都是自动的。

      现在如果你真的只是在一个地方设置值并在一个控件中显示它,那么你是对的,没有什么意义。

      【讨论】:

        【解决方案3】:

        对于将 TextBlock 绑定到静态字符串,使用数据绑定的好处并不是特别明显。

        但是,如果 MyString 的值在应用程序运行时发生变化,它会变得更加有用 - 特别是在拥有该属性的对象不知道 TextBlock 的情况下。 UI 和底层数据层之间的这种分离可以使用 MVVM 等设计模式来创建。

        数据绑定对于更复杂的属性也很有用,例如 ListBox 控件中的项。只需将 ListBox.Items 绑定到 ObservableCollection 类型的属性,只要该集合的内容发生更改,UI 就会自动更新。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-16
          • 2010-12-23
          • 2014-04-24
          • 2023-03-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多