2010-08-13 20 views
5

मैं डब्ल्यूपीएफ दुनिया के लिए काफी नया हूं और मुझे आइटम कंट्रोल में टेम्पलेटिंग आइटमों के साथ कुछ समस्याएं आ रही हैं। मुझे आइटम कंट्रोल (या जैसा) के अंदर टेम्पलेट तत्वों (अधिकतर बटन) की आवश्यकता है। http://img444.imageshack.us/img444/2167/itemscontrolnottemplate.gifआइटम टेम्पलेट: लिस्टबॉक्स बनाम आइटम नियंत्रण

ItemsControl या तो बटन पर टेम्पलेट लागू नहीं किया:

मैं निम्नलिखित XAML कोड का उपयोग कर रहा है ...

<ItemsControl> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate DataType="{x:Type Button}"> 
       <Border BorderBrush="AliceBlue" 
         BorderThickness="3"> 
        <TextBlock Text="Templated!"/>   
       </Border> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
    <Button>Not templated</Button> 
    <TextBlock>Text not templated</TextBlock> 
</ItemsControl> 

... मैं इस परिणाम मिलता है और न ही टेक्स्टब्लॉक नियंत्रण। अगर मैं एक ListBox में ItemsControl बदल इस तरह:

<ListBox> 
    <ListBox.ItemTemplate> 
     <DataTemplate DataType="{x:Type Button}"> 
       <Border BorderBrush="AliceBlue" 
         BorderThickness="3"> 
        <TextBlock Text="Templated!"/>   
       </Border> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
    <Button>Not templated</Button> 
    <TextBlock>Text not templated</TextBlock> 
</ListBox> 

... तो मैं इस परिणाम हो रही है:

img814.imageshack.us/img814/6204/listboxtoomuchtemplatin.gif अब टेम्पलेट BOTH बाल नियंत्रण पर लागू होता है (भले ही मैं डेटाटाइप सेट करता हूं बटन केवल)।

उत्तर

15

यह अनुमान कर तुम क्या करने की कोशिश कर रहे हैं क्या है, लेकिन देखना है कि अगर यह मदद करता है करने के लिए मुश्किल है ...

एक सादे पुराने ItemsControl एक कंटेनर में अपने बच्चों को लपेट नहीं होगा यदि वे पहले से UI तत्व कर रहे हैं। दूसरी ओर, ListBox, इसके बच्चों को ListBoxItem में लपेटने की आवश्यकता है।

यदि आइटम लपेटा गया है, तो ItemTemplate लागू किया जाएगा। यदि आइटम लपेटा नहीं गया है, तो ItemTemplate भी मौजूद नहीं हो सकता है।

आप लगभग हमेशा अपने ItemsControl, यूआई नहीं तत्वों को डेटा आइटम जोड़ने होना चाहता हूँ। फिर आप उन डेटा तत्वों के साथ DataTemplate एस को संबद्ध करते हैं ताकि यह निर्धारित किया जा सके कि उन्हें प्रस्तुत करने के लिए कौन से UI तत्वों का उपयोग किया जाता है।

मुझे लगता है कि आपके अंतिम लक्ष्य को समझाने के लिए आगे की मदद करना आवश्यक होगा।