2009-12-14 13 views
5

हैलो मैं WPF DataGrid का उपयोग कर रहा हूं और मैं काम करने के लिए कॉम्बोबॉक्स कॉलम प्राप्त करने का प्रयास कर रहा हूं।WPF DataGridComboBoxColumn

<tk:DataGridComboBoxColumn Header="GroupLevel" 
          DisplayMemberPath="Type" 
          SelectedItemBinding="{Binding Path=GroupLevel}" 
          > 
    <tk:DataGridComboBoxColumn.EditingElementStyle> 
     <Style TargetType="ComboBox"> 
      <Setter Property="ItemsSource" Value="{Binding Path=GroupLevel.Group.GroupLevels}" /> 
     </Style> 
    </tk:DataGridComboBoxColumn.EditingElementStyle> 

</tk:DataGridComboBoxColumn> 

जब मैं ग्रिड को देखता हूं, तो स्तंभ खाली होता है, जैसे कि प्रदर्शन सदस्य पथ का उपयोग नहीं किया जाता है। लेकिन एक बार जब मैं कॉलम में क्लिक करता हूं तो combobox दिखाता है और मेरे आइटमसोर्स में सभी आइटम दिखाता है और उचित विकल्प चुनता है, इसलिए मुझे पता है कि बाइंडिंग सभी ठीक से काम कर रहे हैं, यहां तक ​​कि DisplayMemberPath भी। यह ठीक है जब मैं सेल को संपादित नहीं कर रहा हूं कि यह खाली दिखाई देता है।

क्या मुझे कुछ संपत्ति याद आती है?

धन्यवाद, राउल

उत्तर

14

im यकीन है कि है कि इस वजह से जब आप संपादन मोड में नहीं हैं अपने कॉलम एक आइटम स्रोत और कोई ComboBox एक आइटम स्रोत के बिना नहीं कर सकते एक चयनित आइटम है नहीं है। जैसे ही आप संपादन मोड पर जाते हैं, आपका कॉलम इसके आइटम स्रोत प्राप्त करता है और सब कुछ ठीक है। तुम इतनी तरह एक आइटम स्रोत निर्दिष्ट करने के द्वारा इसे ठीक कर सकते हैं: -

<tk:DataGridComboBoxColumn.ElementStyle> 
    <Style TargetType="ComboBox"> 
     <Setter Property="ItemsSource" Value="{Binding Path=GroupLevel.Group.GroupLevels}" /> 
    </Style> 
</tk:DataGridComboBoxColumn.ElementStyle> 

फिर अपने संपादन तत्व और अपने (गैर संपादन) तत्व दोनों एक ही ItemsSource है

+0

आप विश्वास नहीं करेंगे कितना मुश्किल यह करने के लिए कर दिया गया है पाते हैं। मुझे नहीं पता था कि गैर संपादन मोड स्थिति में अभी भी एक कॉम्बो बॉक्स था। मैंने सोचा कि यह सिर्फ एक टेक्स्टब्लॉक था। फिर से धन्यवाद! – HaxElit

+1

इसे थोड़ा विचलित करें। मुझे डेटाग्रिड के लिए कोड के माध्यम से काम मिल गया है, वास्तव में आपको कुछ चालों में शामिल करने देता है। डेटाग्रिडकंबो कॉलम में जेनरेट एलीमेंट फ़ंक्शन देखने के लिए कोड है, उनके पास केवल कॉम्बो बॉक्स है। मैं अपने प्रोजेक्ट में डेटाग्रिड स्रोत आयात करता हूं और जब मैं समाप्त हो जाता हूं तो मैं इसे सीधे डीएलएल संदर्भ से बदलता हूं। –

+3

क्या आप जानते हैं कि कॉमबोबॉक्स दृश्यमान में भी दिखाना संभव है। मैं चाहता हूं कि मेरे उपयोगकर्ता यह जान लें कि यह एक कॉम्बोबॉक्स है – MBen