INotifyPropertyChanged
เมื่อใช้ยังช่วยให้คุณสามารถเพิ่มตรรกะเพิ่มเติมในรหัสของ getters และ setter ของคุณสมบัติของคุณ
DependencyProperty
ตัวอย่าง:
public static DependencyProperty NameProperty = DependencyProperty.Register( "Name", typeof( String), typeof( Customer ) );
public String Name
{
set { SetValue( NameProperty, value ); }
get { return ( String ) GetValue( NameProperty ); }
}
ใน getter และ setter ของคุณ --- สิ่งที่คุณทำได้เพียงแค่เรียก SetValue และ GetValue ตามลำดับ b / c ในส่วนอื่น ๆ ของเฟรมเวิร์กที่ getter / setter ไม่ถูกเรียกใช้แทนมันจะเรียก SetValue, GetValue โดยตรงดังนั้นตรรกะคุณสมบัติของคุณจะไม่ ดำเนินการอย่างน่าเชื่อถือ
ด้วยINotifyPropertyChanged
กำหนดกิจกรรม:
public event PropertyChangedEventHandler PropertyChanged;
และจากนั้นก็มีตรรกะใด ๆ ในรหัสของคุณแล้วโทร:
// ...
// Something cool...
// ...
if( this.PropertyChanged != null )
{
PropertyChanged( this, new PropertyChangedEventArgs( "Name" ) );
}
// More cool stuff that will reliably happen...
สิ่งนี้อาจอยู่ใน getter / setter หรือที่อื่น ๆ