绑定的好处?

时间:2013-05-27 09:59:32

标签: wpf binding

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

  1. 创建一个扩展INotifyPropertyChanged
  2. 的类
  3. 在该类中添加一个字符串(例如:MyString)
  4. 扩展MyString的set方法,以便调用另一个方法(例如:OnPropertyChanged)
  5. 创建OnPropertyChanged方法以调用PropertyChangedEventHandler事件
  6. 然后我需要创建一个新的类实例,设置我的TextBlock.DataContext指向该类,最后为绑定添加XAML位。

    有人可以通过简单的设置来解释这一点的优势:

    TextBlock.Text = MyString;

    谢谢!

3 个答案:

答案 0 :(得分:5)

  1. MyString的任何更改都不会自动反映在您的用户界面中。
  2. 你的代码背后会出现“当这个事件发生时,更新这些数据”,所以你基本上都会为每个视图编写自己的凌乱的数据绑定逻辑。

答案 1 :(得分:1)

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

现在,如果您真的只是将值设置在一个位置并在一个控件中显示,那么您是对的,没有多大意义。

答案 2 :(得分:0)

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

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

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