- Why : Giả sử khi chúng ta Binding vào 1 Property là Name cua 1 lớp đối tượng Student và giá trị ban đầu là "Nickname",hiện tại có 2 FrameworkElement(FE) Binding vào Property này, khi chúng ta thay đổi dữ liệu ở FE thứ nhất (FE-1) là "voxuvi" thì khi đó Name sẽ thay đổi là "voxuvi", nhưng FE-2 sẽ ko nhận được sự thông báo chính vì vậy giá trị được Render trên FE-2 vẫn là Nickname.
- Creation :
+ Lớp Student phải được Implement từ INotifyPropertyChanged
- Override hàm OnPropertyChanged và viết như sau
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(String info)
{
PropertyChangedEventHandler eventhandler = (PropertyChangedEventHandler)PropertyChanged;
if (eventhandler != null)
{
eventhandler(this, new PropertyChangedEventArgs(info));
}
}
- Full Class
public class Student : INotifyPropertyChanged
{
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(String info)
{
PropertyChangedEventHandler eventhandler = (PropertyChangedEventHandler)PropertyChanged;
if (eventhandler != null)
{
eventhandler(this, new PropertyChangedEventArgs(info));
}
}
#endregion
private String name;
public string Name
{
get
{
return name;
}
set
{
name = value;
//thông sự thay dôi bởi các Control nào dang Binding vào nó
//Tham số bên trong hàm OnPropertyChanged là tên của thuộc tính cần được Notify
//đây là 1 String mà String đó trùng với Property
OnPropertyChanged("Name");
}
}
}
No comments:
Post a Comment