मेरे पास सूची नियंत्रण के अंदर कई आइटम हैं। मैं आइटम के प्रकार के आधार पर प्रत्येक आइटम को एक अलग आइटम टेम्पलेट रखना चाहता हूं। तो सूची में पहला आइटम ऑब्जेक्टए प्रकार है और इसलिए मैं इसे आइटम टेम्पलेट के साथ प्रस्तुत करना चाहता हूं। दूसरा आइटम ऑब्जेक्टबी प्रकार है और इसलिए मैं इसे प्रतिपादन के लिए ItemTemplateB रखना चाहता हूं। फिलहाल मैं केवल उन सभी के लिए एक टेम्पलेट को परिभाषित करने के लिए ItemTemplate सेटिंग का उपयोग कर सकता हूं। इसे हासिल करने का कोई तरीका?एक WPF सूची में प्रत्येक आइटम के लिए अलग-अलग आइटम टेम्पलेट?
उत्तर
ItemTemplateSelector
काम करेगा, लेकिन मुझे लगता है कि यह कई DataTemplate
बनाने के लिए आसान है आपके संसाधन खंड में है और फिर बस प्रत्येक को DataType
दे रहा है। यदि आइटम जनरेटर मिलान डेटा प्रकार का पता लगाता है तो यह स्वचालित रूप से इस DataTemplate
का उपयोग करेगा?
<DataTemplate DataType={x:Type local:ObjectA}>
...
</DataTemplate>
यह भी सुनिश्चित करें कि आप DataTemplate
के लिए कोई x:Key
सेट है कि सुनिश्चित करें।
इस दृष्टिकोण के बारे में और पढ़ें here
अपनी सूची नियंत्रण की ItemTemplateSelector संपत्ति पर एक नज़र डालें। आप इसे एक कस्टम टेम्पलेट चयनकर्ता को इंगित कर सकते हैं और यह तय कर सकते हैं कि कौन सा टेम्पलेट कोड में उपयोग करना है।
यहाँ एक ब्लॉग पोस्ट है का वर्णन TemplateSelectors:
http://blogs.interknowlogy.com/johnbowen/archive/2007/06/21/20463.aspx
संपादित करें: यहाँ एक बेहतर पद है:
http://blog.paranoidferret.com/index.php/2008/07/16/wpf-tutorial-how-to-use-a-datatemplateselector/
मुझे बस इतना चाहिए जैसा दिखता है। धन्यवाद। –
यह दृष्टिकोण असहनीय रूप से काम नहीं करता है। –
मैं {x: टाइप ... सामान में डालना भूल गया, कृपया पुनः प्रयास करें! – rudigrobler
यह भी सुनिश्चित करें कि आपके पास कोई एक्स नहीं है: कुंजी सेट! – rudigrobler