2011-05-25 15 views
7

मैं डब्ल्यूपीएफ के बारे में सीख रहा हूं। अब मैं बाध्यकारी आया हूँ। INotifyPropertyChanged का उपयोग करते समय बाध्यकारी प्रतिबिंब पर निर्भर करता है और ऐसा है, कीमत क्या है? मैं यूडीपी के माध्यम से स्ट्रीमिंग डेटा प्रदर्शित करने के लिए डब्ल्यूपीएफ का उपयोग करने पर विचार कर रहा हूं, लेकिन मुझे डर है कि ओवरहेड WinForms की तुलना में बहुत बड़ा हो सकता है।डब्ल्यूपीएफ बाइंडिंग ओवरहेड

+0

अच्छा सवाल। +1 – nawfal

उत्तर

7

यहाँ इसके बारे में एक MSDN article है। यह एक बहुत ही आम सवाल है जिसे मैं हर समय सुनता हूं।

लेकिन मेरा विचार यह है कि जब तक कि आप एक गंभीर एज केस परिदृश्य में नहीं चल रहे हैं, तो आप WPF में बाध्यकारी का उपयोग करना चाहते हैं। इस तरह पूरी प्रणाली तैयार की गई है।

+0

सबसे उत्कृष्ट। धन्यवाद। – kasperhj

5

माइक्रोसॉफ्ट के पास इस here पर एक महान लेखन है।

लेकिन प्रतिबिंब का उपयोग INotifyPropertyChanged के संबंध में नहीं किया जाता है, लेकिन सीएलआर गुणों को हल करते समय होता है।

स्रोत ऑब्जेक्ट एक CLR वस्तु है और स्रोत संपत्ति एक CLR संपत्ति है, तो विंडोज प्रस्तुति फाउंडेशन (WPF) डेटा बाइंडिंग इंजन स्रोत ऑब्जेक्ट पर पहली बार उपयोग प्रतिबिंब के लिए है पाने के लिए टाइपडिस्क्रिप्टर, और उसके बाद PropertyDescriptor के लिए क्वेरी करें। प्रतिबिंब संचालन का यह अनुक्रम संभावित प्रदर्शन परिप्रेक्ष्य से बहुत समय लेने वाली है।

+3

यह ध्यान देने योग्य है कि इस प्रतिबिंब ओवरहेड केवल तभी किया जाता है जब आप पहली बार बाध्यकारी के लिए प्रारंभिक PropertyPath को पार्स करते हैं। ऐसे दृश्यों के पीछे एक जटिल संपत्तिपैथवर्कर है जो एक पार्स किए गए रूप में बाध्यकारी अभिव्यक्ति को कैश करता है, जो आवश्यक मेटाडेटा प्राप्त करने के लिए पुनः प्रतिबिंबित किए बिना, पथ में कहीं भी अधिसूचित परिवर्तनों पर प्रतिक्रिया करने की अनुमति देता है। –

संबंधित मुद्दे