2010-03-15 12 views
6

मैं नवीनतम WPF Toolkit का उपयोग कर रहा हूं लेकिन जब मैं AccordionItem आइटम के अंदर DataGrid में एक बड़ा रिकॉर्ड सेट बाध्य करता हूं तो ऊंचाई ऊंचाई में चल रहा हूं। Accordion की ऊंचाई अच्छी तरह से स्केल करती है लेकिन accordion नियंत्रण के अंदर DataGrid को ScrollBar नहीं मिलता है या किसी भी तरह से बाध्य नहीं होता है ताकि रिकॉर्ड्स छिपाए जा सकें।Accordion ऊंचाई मुद्दे के अंदर WPF DataGrid

मुझे पता है कि मैं सबसे शायद बहुत सरल कुछ याद आ रही है (जैसे एक अकॉर्डियन को DataGrid की ऊंचाई संपत्ति से बाध्यकारी लेकिन वह गंदा लगता है)

यहाँ

कोड का एक कटौती संस्करण है (और हाँ अगर आप एक बड़ा recordset में बाँध, इस एक ही समस्या है)

<UserControl> 
<layouttoolkit:Accordion x:Name="ReportSelector" HorizontalAlignment="Stretch"> 
    <layouttoolkit:AccordionItem Header="grid 1"> 
     <dg:DataGrid 
     AutoGenerateColumns="False" 
     CanUserAddRows="False" 
     CanUserDeleteRows="False" 
     SelectionMode="Single"> 
... 
      </dg:DataGrid.Columns> 
     </dg:DataGrid> 

    </layouttoolkit:AccordionItem> 
    <layouttoolkit:AccordionItem Header="grid 2"> 
     <dg:DataGrid 
     AutoGenerateColumns="False" 
     CanUserAddRows="False" 
     CanUserDeleteRows="False" 
     SelectionMode="Single"> 
... 
      </dg:DataGrid.Columns> 
     </dg:DataGrid> 

    </layouttoolkit:AccordionItem> 
    <layouttoolkit:AccordionItem Header="grid 3"> 
     <dg:DataGrid 
     AutoGenerateColumns="False" 
     CanUserAddRows="False" 
     CanUserDeleteRows="False" 
     SelectionMode="Single"> 
... 
      </dg:DataGrid.Columns> 
     </dg:DataGrid> 

    </layouttoolkit:AccordionItem>    
</layouttoolkit:Accordion> 
</UserControl> 

उत्तर

8

लग रहा है मेरी प्रारंभिक विचार की तरह सही था - एक ही रास्ता मैं इस एक हल करने में सक्षम किया गया है DataGrid की MaxHeight बाध्य करने के लिए है AccordionItem

के

प्रत्येक DataGrid के लिए निम्न प्रॉपर्टी जोड़ने चाल

MaxHeight="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type layouttoolkit:AccordionItem}},Path=ActualHeight}" 
2

मुझे बहुत खुशी है कि मैं इस पर ठोकर खाई हूँ था! इस क्यूए को ऊपर उठाने की जरूरत है। कॉलम चौड़ाई को छोड़कर मुझे एक ही समस्या थी।

मेरे डेटाग्रिड में कुछ * आकार की कॉलम चौड़ाई के साथ चौड़ाई = "ऑटो" थी। Accordion के बाहर डेटाग्रिड ठीक rendered लेकिन Accordion के अंदर, सभी कॉलम की चौड़ाई प्रत्येक 10px करने के लिए squished हो जाएगा। क्यों नहीं पता लगाया जा सकता है। एक बग हो सकता है?

मैंने देखा कि यदि मैंने ऑटो की बजाय 400 की स्थिर चौड़ाई निर्धारित की है, तो कॉलम ठीक से प्रस्तुत करेंगे। तब मैंने डेटाग्रिड चौड़ाई को AccordionItem ActualWidth पर बाध्य करने की कोशिश की जैसा आपने किया था, और यह अब पूरी तरह से काम करता है। धन्यवाद महोदय!