WEB开发网
开发学院WEB开发ASP.NET WPF学习笔记8. Binding 阅读

WPF学习笔记8. Binding

 2010-10-11 16:21:09 来源:本站整理   
核心提示:不过有个问题,就是当我们修改数据源时,WPF学习笔记8. Binding(4),目标属性会因为无法接收变更通知而自动更新,要解决这个问题,我们需要让数据源对象实现 System.ComponentModel.INotifyPropertyChanged 接口,publicdelegatevoidPropertyChan

不过有个问题,就是当我们修改数据源时,目标属性会因为无法接收变更通知而自动更新。要解决这个问题,我们需要让数据源对象实现 System.ComponentModel.INotifyPropertyChanged 接口。

public delegate void PropertyChangedEventHandler(object sender, PropertyChangedEventArgs e);
public interface INotifyPropertyChanged
{
  // Events
  event PropertyChangedEventHandler PropertyChanged;
}
我们试着修改一下上面例子中的 Data 类型。
class Data : INotifyPropertyChanged
{
  private string name;
  public event PropertyChangedEventHandler PropertyChanged;
  
  public string Name
  {
    get
    {
      return name;
    }
    set
    {
      if (value != name)
      {
        name = value;
        if (PropertyChanged != null)
        {
          PropertyChanged(this, new PropertyChangedEventArgs("Name"));
        }
      }
    }
  }
}
public partial class Window1 : Window
{
  Data data;
  public Window1()
  {
    InitializeComponent();
    data = new Data { Name = "Q.yuhen" };
    BindingOperations.SetBinding(this.textbox1, TextBox.TextProperty,
      new Binding("Name") { Source = data });
  }
  protected void ButtonClick(object sender, RoutedEventArgs e)
  {
    if (sender == button1)
      data.Name = DateTime.Now.ToString();
    else
      MessageBox.Show(data.Name);
  }
}

好了,现在支持双向变更自动更新了。

上一页  1 2 3 4 

Tags:WPF 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接