बाध्यकारी ComboBox सूची में नहीं मूल्य के लिए बाध्यकारी के साथ


81

मेरे पास संपादन योग्य कॉम्बोबॉक्स है जहां हमेशा ड्रॉप-डाउन सूची में पसंदीदा वस्तु नहीं होती है।

मैं टेक्स्ट बॉक्स में मैन्युअल रूप से टेक्स्ट दर्ज करने की संभावना रखना चाहता हूं, जो कि चयनितवैल्यू से जुड़ी स्ट्रिंग के लिए प्रचारित है।

यदि चयनित मूल्य कॉम्बो बॉक्स आइटम में है, तो अभी केवल चयनितवैल्यू से बंधा स्ट्रिंग ही अपडेट किया गया है।

मैं कॉम्बो बॉक्स सूची में कस्टम मानों को कैसे उपलब्ध नहीं होने देता जो मैन्युअल रूप से दर्ज किया गया है और ठीक से बाध्य मान के लिए प्रचारित किया गया है?

जवाबों:


135

मैं कल और आज यही कर रहा था और यह निम्नलिखित की तरह दिखता है:

  1. कॉम्बोक्स सेट करें IsEditable="true"

  2. SelectedItemबांधने के बजाय , कोम्बोक्स की Textसंपत्ति से बांधें

  3. यदि आप केवल तार के बजाय एक कस्टम ऑब्जेक्ट के लिए बाध्य कर रहे हैं, तो आपको भी सेट करने की आवश्यकता है TextSearch.TextPath="NameOfField"। यह पाठ खोज व्यवहार को काम करने देता है, और इस गुण को टेक्स्टबॉक्स में भी दिखाता है।

सब सब में, मैं कुछ इस तरह से समाप्त हुआ:

<ComboBox x:Name="c" 
          IsEditable="True" 
          IsTextSearchEnabled="True" 
          IsTextSearchCaseSensitive="False" 
          StaysOpenOnEdit="True"
          Text="{Binding NameOnViewModel}"
          TextSearch.TextPath="NameOnChildItems"  
          ItemsSource="{Binding Items}" 
          ItemTemplate="{StaticResource DataTemplate}" />

<TextBlock Text="{Binding ElementName=c,Path=Text}" />

4
ओह, और यदि आप ItemTemplate का उपयोग नहीं कर रहे हैं, तो आप DataTemplate का उपयोग करने के बजाय DisplayMemberPath = "नाम" का उपयोग कर सकते हैं।
जॉन गार्डनर

28

कॉम्बो की टेक्स्ट प्रॉपर्टी के लिए बाइंडिंग सेट करना भी पर्याप्त होगा।

<ComboBox  IsTextSearchEnabled="True"    IsEditable="True" 
ItemsSource="{Binding Items}" Text="{Binding SelectedItemText, Mode=TwoWay}" />

1
पूरी तरह से तार की सूची में बांधने के लिए काम करता है।
हरमन कॉर्ड्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.