2008-09-30 13 views
13

मेरे पास सूची नियंत्रण के अंदर कई आइटम हैं। मैं आइटम के प्रकार के आधार पर प्रत्येक आइटम को एक अलग आइटम टेम्पलेट रखना चाहता हूं। तो सूची में पहला आइटम ऑब्जेक्टए प्रकार है और इसलिए मैं इसे आइटम टेम्पलेट के साथ प्रस्तुत करना चाहता हूं। दूसरा आइटम ऑब्जेक्टबी प्रकार है और इसलिए मैं इसे प्रतिपादन के लिए ItemTemplateB रखना चाहता हूं। फिलहाल मैं केवल उन सभी के लिए एक टेम्पलेट को परिभाषित करने के लिए ItemTemplate सेटिंग का उपयोग कर सकता हूं। इसे हासिल करने का कोई तरीका?एक WPF सूची में प्रत्येक आइटम के लिए अलग-अलग आइटम टेम्पलेट?

उत्तर

14

ItemTemplateSelector काम करेगा, लेकिन मुझे लगता है कि यह कई DataTemplate बनाने के लिए आसान है आपके संसाधन खंड में है और फिर बस प्रत्येक को DataType दे रहा है। यदि आइटम जनरेटर मिलान डेटा प्रकार का पता लगाता है तो यह स्वचालित रूप से इस DataTemplate का उपयोग करेगा?

<DataTemplate DataType={x:Type local:ObjectA}> 
    ... 
</DataTemplate> 

यह भी सुनिश्चित करें कि आप DataTemplate के लिए कोई x:Key सेट है कि सुनिश्चित करें।
इस दृष्टिकोण के बारे में और पढ़ें here

+0

यह दृष्टिकोण असहनीय रूप से काम नहीं करता है। –

+4

मैं {x: टाइप ... सामान में डालना भूल गया, कृपया पुनः प्रयास करें! – rudigrobler

+1

यह भी सुनिश्चित करें कि आपके पास कोई एक्स नहीं है: कुंजी सेट! – rudigrobler

6

अपनी सूची नियंत्रण की 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/

+0

मुझे बस इतना चाहिए जैसा दिखता है। धन्यवाद। –

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