C’est peut-être quelque chose qui est couvert dans C # 101 mais je n’ai pas pu trouver de réponse facile à comprendre à cette question où que ce soit sur Google ou un débordement de stack. Existe-t-il un meilleur moyen de retourner une valeur de texte à partir d’une liste déroulante sans utiliser ce travail de merde que j’ai créé?
private void test_site_SelectionChanged(object sender, SelectionChangedEventArgs e) { ssortingng cmbvalue = ""; cmbvalue = this.test_site.SelectedValue.ToSsortingng(); ssortingng[] cmbvalues = cmbvalue.Split(new char[] { ' ' }); MessageBox.Show(cmbvalues[1]); }
S’il vous plait, ne vous énervez pas trop, je viens juste de prendre c # et OOP.
On dirait que vous avez ComboBoxItems dans votre ComboBox, de sorte que SelectedValue renvoie un ComboBoxItem et que ToSsortingng renvoie par conséquent quelque chose comme ComboBox SomeValue
.
Si c’est le cas, vous pouvez obtenir le contenu en utilisant ComboBoxItem.Content:
ComboBoxItem selectedItem = (ComboBoxItem)(test_site.SelectedValue); ssortingng value = (ssortingng)(selectedItem.Content);
Au lieu de renseigner ComboBox avec une collection de ComboBoxItems, une meilleure approche consiste à définir ComboBox.ItemsSource sur la collection de chaînes souhaitée:
test_site.ItemsSource = new ssortingng[] { "Alice", "Bob", "Carol" };
Ensuite, SelectedItem vous obtiendrez directement la chaîne actuellement sélectionnée.
ssortingng selectedItem = (ssortingng)(test_site.SelectedItem);
Sur les événements de charge mis
DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(ComboBox.TextProperty, typeof(ComboBox)); dpd.AddValueChanged(cmbChungChi, OnTextChanged);
Et recevez du texte via funtion
private void OnTextChanged(object sender, EventArgs args) { txtName.Text = cmbChungChi.Text; }
Bonne chance.