Wpf 装订的优点?

Wpf 装订的优点?,wpf,binding,Wpf,Binding,我不确定我是否完全理解绑定的好处。例如,如果要将字符串值绑定到TextBlock,则需要执行以下操作: 创建扩展INotifyPropertyChanged的类 向该类添加字符串(例如:MyString) 扩展MyString的set方法,以便它调用另一个方法(例如:OnPropertyChanged) 创建OnPropertyChanged方法以调用PropertyChangedEventHandler事件 然后我需要创建该类的新实例,将我的TextBlock.DataContext设置为指向

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

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

    有人能解释一下这种设置比简单设置的优势吗:

    Text=MyString


    谢谢

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

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

  • MyString
    的任何更改都不会自动反映在您的UI中
  • 您的代码背后将充斥着“当此事件发生时,更新这些数据片段”,因此您将为每个视图编写自己的凌乱数据绑定逻辑

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

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

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