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); } }
好了,现在支持双向变更自动更新了。
更多精彩
赞助商链接