2010-02-27 17 views
6

यह कुछ सी # 101 में शामिल हो सकता है लेकिन मुझे Google या स्टैक ओवरफ़्लो पर कहीं भी इस प्रश्न का उत्तर समझने में आसान नहीं मिला है। क्या मैं इस घबराहट के काम के बिना एक combobox से एक पाठ मूल्य वापस करने के लिए एक बेहतर तरीका है?मैं WPF में कॉम्बोबॉक्स से टेक्स्ट मान कैसे प्राप्त करूं?

private void test_site_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    string cmbvalue = ""; 

    cmbvalue = this.test_site.SelectedValue.ToString(); 
    string[] cmbvalues = cmbvalue.Split(new char[] { ' ' }); 

    MessageBox.Show(cmbvalues[1]); 
} 

कृपया मुझे मुश्किल से रेल मत करो मैं वास्तव में अभी सी # और ओओपी उठा रहा हूं।

उत्तर

11

ऐसा लगता है कि आपके कॉम्बोबॉक्स में कॉम्बोबॉक्स इटम्स हैं, ताकि चयनित वैल्यू कॉम्बोबॉक्स इटैम और टोस्टिंग लौट रहा है इसलिए ComboBox SomeValue जैसे कुछ लौटा रहा है।

अगर ऐसी बात है, तो आप ComboBoxItem.Content का उपयोग कर सामग्री प्राप्त कर सकते हैं:

ComboBoxItem selectedItem = (ComboBoxItem)(test_site.SelectedValue); 
string value = (string)(selectedItem.Content); 

हालांकि, एक बेहतर तरीका है, बजाय ComboBoxItems का एक संग्रह के साथ ComboBox को आबाद करने के लिए ComboBox.ItemsSource स्थापित करने के लिए तार के वांछित संग्रह:

test_site.ItemsSource = new string[] { "Alice", "Bob", "Carol" }; 

फिर SelectedItem आप वर्तमान में चयनित स्ट्रिंग सीधे मिल जाएगा।

string selectedItem = (string)(test_site.SelectedItem); 
+0

पहला सुझाव अपवाद थ्रू हुए। – Akers

+1

दूसरा सुझाव महान काम करता है! बहुत बहुत धन्यवाद! – Akers

1

इवेंट लोड पर

DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(ComboBox.TextProperty, typeof(ComboBox)); 

dpd.AddValueChanged(cmbChungChi, OnTextChanged); 

डाल और funtion

private void OnTextChanged(object sender, EventArgs args) 
{ 
    txtName.Text = cmbChungChi.Text; 
} 

गुड लक के माध्यम से पाठ मिलता है। प्रकार 'System.Windows.Controls.ListBoxItem' की वस्तु कास्ट करने के लिए 'System.Windows.Controls.ComboBoxItem' टाइप करने में असमर्थ:

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