2012-06-26 23 views
5

का उपयोग करके संपत्ति बदलते समय एक ईवेंट बढ़ाएं, मैं सी # में काम कर रहा हूं और मेरे पास एक ऑब्जेक्ट है जिसे मैं केवल Reflection (कुछ व्यक्तिगत कारणों से) का उपयोग करके एक्सेस कर सकता हूं। तो, मैं नीचे के रूप में करते हैं जब मैं उसके गुण से एक के लिए कुछ मूल्य निर्धारित करने की आवश्यकता:प्रतिबिंब

System.Reflection.PropertyInfo property = this.Parent.GetType().GetProperty("SomeProperty"); 
object someValue = new object(); // Just for example 
property.SetValue(this.Parent, someValue, null); 

और, अपने मूल्य प्राप्त करने के लिए मैं विधि GetValue का उपयोग करें।

मेरा प्रश्न है: क्या किसी घटना को आग लगाने का कोई तरीका है जब संपत्ति प्रतिबिंब का उपयोग करके बदलती है?

अग्रिम धन्यवाद।

+0

से संबंधित आई इस वर्ग को लागू करता है 'INotifyPropertyChanged'? SetValue को कॉल करना गुण सेटटर का उपयोग करना चाहिए। – cadrell0

+0

@ cadrell0, नहीं, मुझे डर है यह – Dante

+0

@Dante नहीं है, क्या आपको इसके लिए कोई समाधान मिला? मैं Thread.CurrentThread.CurrentCulture मान बदलता है जब एक अधिसूचना घटना को ट्रिगर करने की कोशिश कर रहा हूं जो आपके प्रश्न के समान है – Kira

उत्तर

7

क्या किसी घटना को आग लगाने का कोई तरीका है जब संपत्ति प्रतिबिंब का उपयोग करके बदलती है?

जब तक संपत्ति सेटर स्वयं इसे उठाता है, नहीं। सभी गुणों को बदलने के लिए "देखने" और कुछ भी नहीं होने पर घटनाओं को बढ़ाने के लिए कुछ भी नहीं है।

+0

आपके उत्तर के लिए धन्यवाद, मुझे लगता है कि मुझे एक और दृष्टिकोण लेने की आवश्यकता है – Dante

0

आप .. WPF आवेदन में Inotifychanged उपयोग कर सकते हैं स्वचालित रूप से संपत्ति के मूल्य में बदलाव होने पर किसी घटना संपत्ति