wpf - What is [NotifyPropertyChangedInvocator] in C# when implements INotifyPropertyChanged? -
मुझे INotifyPropertyChanged
- < पी> पहले एक: <पूर्व>
सार्वजनिक अमूर्त वर्ग देखेंमॉडेलबेस: INotifyPropertyChanged {सार्वजनिक इवेंट संपत्तिसभुगतित्तएवेंटहैंडलर संपत्ति परिवर्तित; संरक्षित आभासी शून्य OnPropertyChanged ([CallerMemberName] स्ट्रिंग propertyName = null) {PropertyChangedEventHandler हैंडलर = PropertyChanged; अगर (हैंडलर! = नल) {हैंडलर (यह, नया प्रॉपर्टी चेंजेड ईवेंटअर्ज (गुणनाम)); दूसरा}:
सार्वजनिक अमूर्त वर्ग ViewModelBase: INotifyPropertyChanged {सार्वजनिक ईवेंट PropertyChangedEventHandler PropertyChanged; [NotifyPropertyChangedInvocator] संरक्षित आभासी शून्य OnPropertyChanged ([CallerMemberName] स्ट्रिंग propertyName = null) {PropertyChangedEventHandler हैंडलर = संपत्ति परिवर्तित; अगर (हैंडलर! = नल) {हैंडलर (यह, नया प्रॉपर्टी चेंजेड ईवेंटअर्ज (गुणनाम)); }}}
दूसरे संस्करण में आप देखें कि एक अतिरिक्त विशेषता
[NotifyPropertyChangedInvocator] विधि पर
OnPropertyChanged < / कोड>
मेरे मामले में दोनों एक ही व्यवहार करते हैं, लेकिन यह, क्या और कब
[NotifyPropertyChangedInvocator] का उपयोग करने के लिए, इसका लाभ क्या है? मैंने इंटरनेट पर खोज की है, लेकिन कोई भी अच्छा जवाब नहीं मिल पाया।
यह एक रिशेर विशेषता है उनके - आपको चेतावनी देने के लिए डिज़ाइन किया गया तो आपका कोड संदिग्ध लग रहा है :) इस पर विचार करें:
सार्वजनिक वर्ग फू: INotifyPropertyChanged {सार्वजनिक ईवेंट PropertyChangedEventHandler PropertyChanged; [NotifyPropertyChangedInvocator] संरक्षित आभासी शून्य NotifyChanged (स्ट्रिंग propertyName) {...} निजी स्ट्रिंग _name; सार्वजनिक स्ट्रिंग नाम {get {return _name; } सेट {_name = value;
पर टिप्पणी [NotifyPropertyChangedInvocator] विशेषता के साथ सूचित करें ("अंतिम नाम"); // & lt; - चेतावनी यहाँ} कोड> विधि रिचार्पर आपको एक चेतावनी देगा , आप विधि (विधिवत रूप से) के साथ गलत मूल्य के साथ प्रयोग कर रहे हैं।
क्योंकि Resharper अब जानता है कि कि विधि को अधिसूचना बदलने के लिए कहा जाना चाहिए, यह आपको सामान्य गुणों को अधिसूचना के साथ गुणों में बदलने में मदद करेगा:
इसे इस रूप में रूपांतरित करें:सार्वजनिक स्ट्रिंग नाम {get {return _name; } सेट {if (value == _name) return; _name = मान; NotifyChange ( "नाम"); }}
यह उदाहरण[NotifyPropertyChangedInvocator] विशेषता पर पाया गया है:
Comments
Post a Comment