2010-07-02 14 views
5

में कॉम्बोबॉक्स। चयनित टेक्स्ट कैसे प्राप्त करें WPF कॉम्बोबॉक्स में चयनित टेक्स्ट गुण नहीं है।डब्ल्यूपीएफ

वहाँ के रूप में पाठ बॉक्स SelectedText WPF में है ही कार्यक्षमता प्राप्त करने के लिए एक रास्ता है

उत्तर

11

आप का उपयोग करके ComboBox के पाठ बॉक्स तक पहुँच प्राप्त कर सकते हैं:

var edit = (TextBox)myCombo.Template.FindName("PART_EditableTextBox", myCombo); 

तो फिर तुम इस बात का SelectedText संपत्ति का उपयोग कर सकते टेक्स्टबॉक्स:

var selectedText = edit.SelectedText; 
+1

धन्यवाद। इसका कामकाजी परफेक्ट – 02Anant

+1

यह केवल तभी काम करता है जब आपका कॉम्बोबॉक्स पहले से दिखाया गया है (यानी यह इसके कंट्रोल टेम्पलेट से उत्पन्न होता है), इसलिए आप कॉम्बोबॉक्स बनाने जैसी कुछ नहीं कर सकते हैं और इसके टेक्स्टबॉक्स पर तुरंत ध्यान केंद्रित कर सकते हैं – hillin

1

क्योंकि डब्ल्यूपीएफ "लापरवाही" है, इसलिए आप अपनी कम्बोबॉक्स वस्तुओं को अपनी इच्छानुसार प्रदर्शित कर सकते हैं। टेक्स्ट आइटम हो सकता है या नहीं भी हो सकता है।

MyCombo.SelectedText यदि आप हैं, तो कोई अर्थ नहीं है, उदाहरण के लिए, वहां आइकन प्रदर्शित करें।

आप क्या चाहते हैं ComboBox.SelectedItem और फिर अपने ऑब्जेक्ट तक पहुंचें। उदाहरण के लिए, यदि आप "पीपुल्स" ऑब्जेक्ट्स की बैकिंग सूची का उपयोग कर रहे हैं .... MyComboBox.SelectedItem.PersonName

आम तौर पर, चयनित इटैम आपके ऑब्जेक्ट मॉडल या किसी अन्य नियंत्रण में डेटाबेस है।

+0

मुझे उपर्युक्त पोस्ट में जवाब मिला है। कॉम्बोबॉक्स से उन्हें संपादित करने के लिए मुझे कॉम्बोबॉक्स से चयनित टेक्स्ट की आवश्यकता है, जब कॉम्बोबॉक्स संपादन मोड में है। – 02Anant

0

चयनित टेक्स्ट नामक कोई संपत्ति नहीं है लेकिन आप इसे ComboBox.SelectedValue.ToString() विधि से प्राप्त कर सकते हैं। ऐसा इसलिए है क्योंकि एक combobox के मान ऑब्जेक्ट प्रकार के डिफ़ॉल्ट रूप से है, इसलिए हमें उचित रूप से टाइपकास्ट करना होगा।

+1

पूरी तरह से सच नहीं है। यदि आप कस्टम आइटम टेम्पलेट का उपयोग कर रहे हैं, तो आपका कोड रेंडर स्ट्रिंग से मेल नहीं खाएगा। आदर्श रूप में, आपको ऐसा होना चाहिए, उदाहरण के लिए, कस्टम जेनरेट स्ट्रिंग्स के समूह की बजाय सूची में कर्मचारी ऑब्जेक्ट्स डालें। – Rich

0

इस का उपयोग करें:

ComboBoxItem Item = (ComboBoxItem) YourComboBoxName.SelectedValue; 

फिर इस:

Console.WriteLine(Item.Content); 
0

आप क्यों प्रयास करें न करें:

string selectedtext= Combobox.Text; 

यह मेरे लिए काम करता है।