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