c# - Access a class instance inside a other class from xaml in wpf -
मेरा वर्ग इस तरह दिखता है:
सार्वजनिक वर्ग परीक्षण वर्ग {सार्वजनिक सूची & lt; अन्य क्लास & gt; संदर्भ {मिल {वापसी _references; }}}
मेरा अन्य क्लास इस तरह दिखता है
सार्वजनिक वर्ग अन्य क्लास {सार्वजनिक स्ट्रिंग का नाम {get; सेट; }}
और अब मैं "DataTemplate" के अंदर इस "अन्य क्लास" का उपयोग करने की कोशिश करता हूं
& gt; DataTemplate x: key = "templateCore" DataType = "{ X: प्रकार vm: AdminInterfaceViewModel} "& gt; & Lt; ग्रुपबोक्स डेटाकॉन्टेक्स्ट = "{बाध्यकारी संदर्भ}" & gt; ... & lt; / DataTemplate & gt;
यह ठीक काम करता है, या मुझे लगता है कि कम से कम, बेकिंग इंटेलिसेंस स्वत: पूर्ण है। लेकिन अब मैं "अन्य क्लास" के नाम की संपत्ति तक कैसे पहुंच सकता हूं?
आपको बस जरूरत है आइटमों को सूचीबद्ध करने के लिए सूचीबॉक्स्, डेटाग्रिड आदि, और आइटमोंकंट्रोल सूची में "अन्य क्लास" का प्रयोग प्रत्येक आइटम के लिए डेटाकॉन्टेक्स्ट के रूप में होगा.तो आप वहां एक 'मैपिंग' पा सकते हैं:
'सूची & lt; अन्य क्लास & gt;' - 'आइटमोंकंट्रोल' 'अन्य क्लास' - 'आइटम'
।
मुझे लगता है कि 'AdminInterfaceViewModel' आपके DataContext है, और 'संदर्भ' इसकी एक संपत्ति है, इसलिए यह कोशिश करें:
& lt; DataTemplate x: key = "templateCore" DataType = " {X: प्रकार vm: AdminInterfaceViewModel} "& gt; & LT; GroupBox & gt; & Lt; लिस्ट बॉक्स आइटमस्सोर्स = "{बाध्यकारी संदर्भ}" & gt; & LT; ListBox.ItemTemplate & gt; & LT; DataTemplate & gt; & Lt; TexBox टेक्स्ट = "{बाध्यकारी नाम}" / & gt; & Lt; / DataTemplate & gt; & LT; /ListBox.ItemTemplate> & Lt; / ListBox & gt; & Lt; / GroupBox & gt; & Lt; / DataTemplate & gt; अपडेट करें: 1. मान लें कि आपके पास एक MainViewModel है जिसमें MyViewModel नामक एक संपत्ति है जिसमें 'AdminInterfaceViewModel '। <पूर्व> वर्ग मुख्य दृश्यमॉडल {सार्वजनिक व्यवस्थापक अंतरफलक देखेंमॉडल MyViewModel {get; 2.आप 'विंडो' के रूप में 'मेन वीवमोडेल' को सेट कर चुके हैं, तो आप एक्सएमएल में 'MyViewModel' प्रॉपर्टी का उपयोग कर सकते हैं। & lt; विंडो & gt; & LT; ग्रिड & gt; & Lt; कंटेंट कंट्रोल मार्जिन = "20" सामग्री = "{{बाध्यकारी} MyViewModel}" & gt; & Lt; / ContentControl & gt; & Lt; / ग्रिड & gt; & Lt; / विंडो & gt;
3. अपने संसाधन उपकरण में डेटाटाइमेट को परिभाषित करें जैसे कि 'जेनेरिक। एक्सएमएल'। एक्स को हटाएं: कुंजी तब डेटाटामप्लेट स्वतः प्रत्येक 'AdminInterfaceViewModel' प्रकार के उदाहरण पर लागू होगा।
& lt; डेटाटामप्लेट एक्स: कुंजी = "टेम्प्लेटकोर" डेटाटाइप = "{x: प्रकार वीएम: व्यवस्थापक इंटरफ़ेस मॉडल Module}" & gt; & LT; GroupBox & gt; & Lt; लिस्ट बॉक्स आइटमस्सोर्स = "{बाध्यकारी संदर्भ}" & gt; & LT; ListBox.ItemTemplate & gt; & LT; DataTemplate & gt; & Lt; TexBox टेक्स्ट = "{बाध्यकारी नाम}" / & gt; & Lt; / DataTemplate & gt; & LT; /ListBox.ItemTemplate> & Lt; / ListBox & gt; & Lt; / GroupBox & gt; & Lt; / DataTemplate & gt;
> टिप्स :
इस लिंक को चेक करें, यह आपकी संभावित समस्याओं का समाधान कर सकता है:
Comments
Post a Comment