나는 결코 wuth INotifyPropertyChanged를 사용하지 않습니다. 나는 기사를 읽고 거기에서 INotifyPropertyChanged와 관련된 코드를 발견했다.INotifyPropertyChanged에 대해서
public class ContactModel : INotifyPropertyChanged
{
private string _firstName;
public string FirstName
{
get { return _firstName; }
set
{
_firstName = value;
RaisePropertyChanged("FirstName");
RaisePropertyChanged("FullName");
}
}
private string _lastName;
public string LastName
{
get { return _lastName; }
set
{
_lastName = value;
RaisePropertyChanged("LastName");
RaisePropertyChanged("FullName");
}
}
public string FullName
{
get { return string.Format("{0} {1}", FirstName, LastName); }
}
protected void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
public override bool Equals(object obj)
{
return obj is ContactModel && ((ContactModel) obj).FullName.Equals(FullName);
}
public override int GetHashCode()
{
return FullName.GetHashCode();
}
}
위 코드에서 RaisePropertyChanged ("FirstName"); 항상 속성 setter에서 호출됩니다. RaisePropertyChanged를 호출해야하는 이유. 좋은 설명을 위해 Google 검색하지만 좋은 링크를 찾지 못했습니다. 누군가 RaisePropertyChanged가 setter에서 호출해야하는 이유를 설명해 주시길 바랍니다.
감사
일반적인 이벤트의 작동 방식을 알고 있습니까? –