home screen

Search



Number Of Result : 0

Result :


Thursday, December 4, 2008

INotifyPropertyChanged

- Purpose : Thông báo cho tất các các đối tượng nào đang hiện tại Binding vào Property đó và thây đổi giá trị của chúng
- 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: