मेरे पास निम्नलिखित कोड है और यह ठीक काम कर रहा है।कैसे INotifyPropertyChanged की संपत्ति बदल दिया घटना सौंपा गया?
public partial class MainWindow : Window
{
Person person;
public MainWindow()
{
InitializeComponent();
person = new Person { Name = "ABC" };
this.DataContext = person;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
person.Name = "XYZ";
}
}
class Person: INotifyPropertyChanged
{
string name;
public string Name
{
get
{
return name;
}
set
{
name = value;
OnPropertyChanged("Name");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string strPropertyName)
{
if(null != PropertyChanged)
{
PropertyChanged(this,
new PropertyChangedEventArgs(strPropertyName));
}
}
}
जब मैं MainWindow के निर्माता में "व्यक्ति" वस्तु बनाने, यह व्यक्ति की "नाम" संपत्ति के लिए मूल्य प्रदान करेंगे, उस समय PropertyChanged घटना शून्य है।
ही "व्यक्ति" वर्ग संपत्ति "नाम" Button_Click घटना में सौंपा है, तो "PropertyChanged" घटना नहीं NULL है और यह OnPropertyChanged की ओर इशारा करते है।
मेरा सवाल यह है कि कैसे "PropertyChanged" ईवेंट OnPropertyChanged विधि को असाइन किया गया है?
अग्रिम धन्यवाद।
आपको वास्तव में अपने varpropertychanged 'var handler = PropertyChanged के रूप में करना चाहिए; अगर (शून्य! = हैंडलर) हैंडलर (यह, नया प्रॉपर्टी चेंजएडएन्टएआरजीएस (स्ट्रप्रोपर्टी नाम) 'यह आपको दौड़ की स्थिति से बचने में मदद करेगा –