2009-09-20 15 views
6

में आइटम आइटम में आइटम दिखाएं मेरे पास एक आइटम नियंत्रण है जो ऑब्जेक्ट्स के संग्रह से जुड़ा हुआ है। ऑब्जेक्ट में दो गुण (नाम, मान) हैं जो मैं क्रमशः टेक्स्टब्लॉक और टेक्स्टबॉक्स में प्रदर्शित करता हूं। सूची काफी लंबी है और मैं इसे दो कॉलम में दिखाना चाहता हूं। तो मेरा सवाल यह है कि, क्या कोई तरीका है कि मैं आइटम आइटम को दो कॉलम में दिखाने के लिए प्राप्त कर सकता हूं?दो कॉलम (WPF)

पी.एस: संग्रह कार्यावधि में से भर जाता है और मुझे पता है कि कितने आइटम मैं दिखाना होगा न!

उत्तर

5

मैं WrapPanel में आइटम रखने वाले, और उसके बाद पैनल की चौड़ाई सेट आइटम चौड़ाई 2x होने के लिए जाते हैं। यह मुझे मनमानी संख्याओं के साथ अच्छे कॉलम देता है। यदि आपकी वस्तु की चौड़ाई अलग-अलग है, तो मैंने प्रत्येक आइटम को अपनी ग्रिड या निश्चित चौड़ाई के स्टैकपैनल में रखा है।

+0

जवाब के लिए धन्यवाद। मैं इसे आज़माउंगा। लेकिन मुझे संदेह है कि उपयोगकर्ता मेरे यूआई को गड़बड़ कर देगा जब उपयोगकर्ता फलक/विंडो का आकार बदलता है। ऐसा करने का कोई और शानदार तरीका नहीं है? शायद itemcontrol के itemstemplate के भीतर एक ग्रिड का उपयोग करके ?? –

11

उपयोग एक ListBox और एक DataTemplate जिसमें आप दोनों TextBlock और पाठबॉक्स डाल निर्दिष्ट करें। दोनों को पॉप्युलेट करने के लिए बाइंडिंग का प्रयोग करें। अधिक उदाहरणों के लिए http://msdn.microsoft.com/en-us/library/ms742521.aspx देखें।

<ListBox x:Name="TheListBox"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto" SharedSizeGroup="Key" /> 
        <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 

       <TextBlock Text="{Binding Name}" /> 
       <TextBox Grid.Column="1" Text="{Binding Value }" /> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

TheListBox.ItemsSource = CollectionOfObjects; 
+1

वास्तव में महत्वपूर्ण (और गैर-सहज ज्ञान युक्त, मुझे लगता है) इस पैटर्न का तत्व SharedSizeGroup है। मैं "अंतर्ज्ञानी" कहता हूं क्योंकि आप सहजता से सोचते हैं कि "मैं अपने आइटम को ग्रिड में प्रदर्शित करना चाहता हूं," नहीं "मैं अपने आइटम को कई ग्रिड में प्रदर्शित करना चाहता हूं जिनके कॉलम सभी परस्पर निर्भरता का आकार बदलते हैं। –

+9

जब मैंने इसे आइटम्स कंट्रोल पर नहीं किया (नहीं एक सूची बॉक्स), मुझे यह काम करने के लिए आइटम्स कंट्रोल पर एक संपत्ति सेट करनी थी: ग्रिड.इशशेड साइजस्कोप = "ट्रू"। –

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