不带 XAML 的双向数据绑定

本文关键字:数据绑定 XAML 不带 | 更新日期: 2023-09-27 18:32:47

我有一个类,我想用它来在文本框的属性之一更改时更新文本框。我还希望能够在文本框更改时更改类属性。换句话说,我希望能够进行双向数据绑定。我在网上看过,所有示例都需要一个 XAML 文件。由于我不熟悉 XAML,如果可能的话,我想远离它。

是否可以在不使用 XAML 的情况下与类进行双向数据绑定?

更新:

我找到了这个 http://msdn.microsoft.com/en-us/library/ms743695%28v=vs.110%29.aspx,它似乎有效。但是,我不完全了解它在做什么。

更具体地说,我不明白 PropertyChanged 和 OnPropertyChanged 如何相互关联。

不带 XAML 的双向数据绑定

在 C# WPF 中,当您实现 INotifyPropertyChanged 时,您会得到 PropertyChanged。

所以,如果你写

PropertyChanged(this,  new PropertyChangedEventArgs("PersonName"));

您向观察者 (XAML) 发出属性PersonName更改的信号,它将更新链接到该属性的所有 UIElement。

 protected void OnPropertyChanged(string name)
  {
      PropertyChangedEventHandler handler = PropertyChanged;
      if (handler != null)
      {
          handler(this, new PropertyChangedEventArgs(name));
      }
  }

您将属性的名称(例如人名)重载为字符串,以指示哪个属性已更改。

对于if(handler != null),您说只有在有任何观察者时才发送信号。

如果是这样,在下一行中,您确实给出了信号。