2010-11-07 19 views
7

मैं कुछ महीनों के लिए डब्ल्यूपीएफ सीख रहा हूं और मैं एक चीज़ के बारे में उत्सुक हूं। बाध्यकारी वास्तव में कैसे काम करता है? मेरा मतलब है, हुड के नीचे, क्या खुशी है। मुझे उम्मीद नहीं है कि यहां कोई भी विस्तृत स्पष्टीकरण देगा लेकिन शायद इस तरह के किसी चीज़ पर पढ़ने के लिए एक अच्छा संसाधन या लिंक हो। मैं इसके लिए खोज रहा हूं और गुगल रहा हूं लेकिन अभी तक कोई अच्छी हिट नहीं है।बाध्यकारी वास्तव में कैसे काम करता है?

मुझे एहसास है कि इसे पूरी तरह से समझने के लिए आपको शायद ढांचे के अधिकांश हिस्सों को समझना होगा लेकिन थोड़ा बुनियादी समझ बहुत अच्छा होगा।

धन्यवाद

उत्तर

2

बाइंडिंग में विचार करने के लिए दो पहलू हैं, यूआई में मूल्य प्राप्त करना और यूआई को अपने डेटाकॉन्टेक्स्ट में बदलावों के बारे में अधिसूचित किया जाना है।

असल में आप किसी भी पीओसीओ ऑब्जेक्ट में लगभग कुछ भी बांध सकते हैं, ऑब्जेक्ट को कुछ भी लागू करने की आवश्यकता नहीं है। सादे वस्तुओं के साथ प्रतिबंध बाध्यकारी लक्ष्य तब नहीं बताया जाएगा जब अंतर्निहित मूल्य बदलता है।

संपत्ति परिवर्तन तीन mechanisims में से एक के माध्यम से propogated रहे हैं:

dependancy गुण: जब अपने मूल्य परिवर्तन, भी एनिमेशन के लिए इस्तेमाल किया जा सकता बाध्यकारी प्रणाली को सूचित करेंगे।

INotifyPropertyChanged: यदि बाध्यकारी किसी ऑब्जेक्ट पर किसी संपत्ति पर है जो INotifyPropertyChanged लागू करता है, बाध्यकारी सिस्टम PropertyChanged ईवेंट की सदस्यता लेता है और बाध्यकारी लक्ष्य को अपडेट करता है, जब यह ईवेंट उठाया जाता है, तो संपत्ति के नाम स्ट्रिंग्स के रूप में भेजे जाते हैं।

* संपत्ति * परिवर्तित ईवेंट: आखिरी बात बाइंडिंग के लिए दिखेगा एक नाम स्रोत संपत्ति के रूप में ही है और अंत पर बदल दिया साथ एक घटना है, तो एक नाम संपत्ति NameChanged कहा जाता है एक सार्वजनिक समारोह के लिए की आवश्यकता होगी , यह WPF को पुराने .NET कक्षाओं जैसे 1.1 के साथ बाध्य करने की अनुमति देता है।

+0

धन्यवाद बेन! वास्तव में अच्छी जानकारी – ImJames

0

यह उत्तर देने के लिए एक कठिन सवाल है। मेरा मानना ​​है कि उत्तर में लगभग दो पहलू हैं। पहला दस्तावेज है। यदि आप बाध्यकारी अभिव्यक्तियों के सभी दस्तावेजों के माध्यम से जाते हैं, जिसमें पथ कैसे बनाए जाते हैं और उदा। BindingOperations जैसे सहायक वर्ग, आप बहुत कुछ पता लगा सकते हैं। यदि यह पर्याप्त नहीं है, तो आप इसे Microsoft Source Initiative साइट से डाउनलोड करके हमेशा कोड में जा सकते हैं।

3

मैं WPF में बाध्यकारी की बारीकियों के बारे में ज्यादा पता नहीं है, लेकिन अगर यह System.ComponentModel और Windows प्रपत्र में बाध्यकारी पीछे ही सिद्धांत है, तो एक ब्लॉग लेख मैं हाल ही में लिखा था यह तुम्हारे लिए पर कुछ प्रकाश डाला करने के लिए मदद कर सकता है:

Some Background on Windows Forms Data Binding

असल में, बंधन सूत्रों IList, IListSource, ITypedList या IBindingList को लागू करने की है। प्रतिबिंब या स्पष्ट परिभाषा के माध्यम से, डेटा स्रोत PropertyDescriptor ऑब्जेक्ट्स का खुलासा करते हैं जो उनके बाध्यकारी गुणों का वर्णन करते हैं। इन गुणों के नाम (जो डेटा स्रोत में निहित वस्तुओं पर वास्तविक गुणों के नाम हो सकते हैं या नहीं भी हो सकते हैं - उदाहरण के लिए DataTable में, वे इसके बजाय कॉलम नाम हैं) DisplayMember/ValueMember संपत्ति के विरुद्ध मेल खाते हैं या, मामले में डब्ल्यूपीएफ, बाध्यकारी पथ।

+0

यह बहुत अच्छा है, धन्यवाद! मैं इसे देख लूँगा! – ImJames

+0

यह WPF बाइंडिंग से कैसे संबंधित है? – benPearce

+0

@benPearce मैं कल्पना करता हूं कि डब्ल्यूपीएफ उसी प्रणाली के रूप में परिभाषित डेटा-बाध्यकारी अवधारणाओं का उपयोग करता है।ComponentModel' - कार्यक्षमता जिसका उपयोग पूरे .NET Framework में किया जाता है। –

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