मैं अपने कुछ वर्गों के बीच डेटा बाइंडिंग का उपयोग करना चाहता हूं। दूसरे शब्दों में, मैं एक मॉडल वर्ग और यूआई के बीच मूल्यों को बाध्य नहीं कर रहा हूं, लेकिन विभिन्न वर्गों के बीच चर को बांधने के लिए।मैं सी # के साथ कोड में डेटा बाध्यकारी कैसे कर सकता हूं?
मैंने कई स्थानों पर सी # में डेटा बाध्यकारी के बारे में पढ़ा है, लेकिन उनमें से अधिकांश विंडोज फॉर्म और स्रोत ऑब्जेक्ट के बीच बाध्यकारी का जिक्र कर रहे हैं।
मैं अभी भी सी # के लिए नया हूं। इस तरह मैं समझता हूं कि मुझे क्या करना चाहिए:
सबसे पहले, मेरे स्रोत ऑब्जेक्ट के लिए, का कहना है कि DataObject
का वर्ग नाम है। स्रोत ऑब्जेक्ट को INotifyPropertyChange
इंटरफ़ेस को कार्यान्वित करना है, और तब ईवेंट को ट्रिगर करें जब भी संपत्ति, health
, बदलने के लिए सेट है। मुझे इस बात से कोई समस्या नहीं है।
अब मान लीजिए कि मेरे पास लक्ष्य ऑब्जेक्ट है जिसे CharacterClass
कहा जाता है। life
CharacterClass
में एक संपत्ति है, और लक्ष्य संपत्ति है कि मैं स्रोत ऑब्जेक्ट की health
संपत्ति से जुड़ना चाहता हूं।
मैं कोड में केवल दो सामान्य गुणों के साथ दो गुणों को एक साथ जोड़ सकता हूं (दोनों तरफा और दो-तरफा) कैसे?
कारण है कि मैं इस प्रश्न को पूछने पर पृष्ठभूमि जानकारी का एक बिट:
शायद ज़रुरत पड़े आपको लगता है कि यह एक डुप्लिकेट किए गए सवाल यह है कि, यह नहीं है। मैंने एसई के माध्यम से खोज की है। कोड में डाटाबेसिंग पर अन्य प्रश्न WPF या XAML के संदर्भ में हैं, जो मेरे लिए नहीं है। मैंने एमएसडीएन पर कई लेख भी पढ़े हैं और ऐसा लगता है कि मैं Binding
ऑब्जेक्ट बना सकता हूं, और फिर स्रोत और लक्ष्य को BindingOperations.SetBinding()
के माध्यम से बांध सकता हूं। हालांकि, Binding
वर्ग System.Windows.Data.Binding
के नामस्थान के तहत WPF लाइब्रेरी का हिस्सा प्रतीत होता है। हालांकि मैं सी # का उपयोग कर रहा हूं, मुझे संदेह है कि मेरे पास डब्ल्यूपीएफ लाइब्रेरी तक पहुंचने के लिए लक्जरी होगा क्योंकि मैं मुख्य रूप से सी # को यूनिटी 3 डी के भीतर केवल एक स्क्रिप्टिंग भाषा के रूप में उपयोग कर रहा हूं। मेरा मानना है कि मुझे केवल वेनिला नेट फ्रेमवर्क तक पहुंच है। लेकिन, मुझे इस बारे में बहुत यकीन नहीं है क्योंकि मैं अभी भी सी # के लिए नया हूं।
असल में, हाँ, आप यूआई के लिए बाध्यकारी जा रहा है डेटा के बारे में सही हो बाध्यकारी समर्थन करने के लिए इस विस्तार कर सकते हैं। मेरी स्थिति में, मैं एक यूआई बना रहा हूं, लेकिन विंडोज़ फॉर्म के साथ नहीं। और उन सभी * लक्षित वस्तुओं * मैं मुख्य रूप से मेरे यूआई कक्षाओं का जिक्र कर रहा था। तो मैं उम्मीद कर रहा हूं कि सॉर्ट डेटा बाध्यकारी तकनीक के "कस्टम" के लिए मैं अपने स्वयं के गैर-विनफॉर्म यूआई पर लागू कर सकता हूं। – Carven
@xEnOn: मुख्य समस्या यह है कि बाध्यकारी इंजन कड़ाई से यूआई फ्रेमवर्क आंतरिक के साथ मिलकर हैं। उदाहरण के लिए, डब्ल्यूपीएफ बाध्यकारी निर्भरता गुणों का उपयोग करता है, इसलिए, यदि आप इसका उपयोग करना चाहते हैं, तो आपको 'यूपीएंडेंसी ऑब्जेक्ट' वंशज होने के लिए अपनी यूआई कक्षाएं लिखनी होंगी। मुझे लगता है, आपको अपना बाध्यकारी इंजन लिखना चाहिए। – Dennis
मैं देखता हूं। धन्यवाद! ऐसा लगता है कि मेरे पास सी # के मौजूदा डेटा बाध्यकारी इंजन का उपयोग करने के लिए कोई भाग्य नहीं है। :(मान लीजिए कि मुझे अपना खुद का बाध्यकारी इंजन कैसे लिख सकता है। शायद मैं यह समझने के लिए एक नया प्रश्न दूंगा कि डेटा बाध्यकारी इंजन हुड के नीचे कैसे काम करते हैं, ताकि मुझे यह पता चल सके कि मैं डेटा बाइंडिंग कैसे लिख सकता हूं इंजन। बहुत बहुत धन्यवाद, डेनिस। :) – Carven