Ich habe ein Dataset mit mehreren Spalten, die einen anzuzeigenden Textwert und einen numerischen Wert enthalten, den ich zum Filtern einer anderen Combobox verwenden muss.C3 comboBox verschiedene Anzeige- und Wertelemente, müssen aber auf beide zugreifen
MyComboBox.DisplayMember = "Reason";
MyComboBox.ValueMember = "ReasonID";
MyComboBox.DataSource = MyDataTable;
Das Problem, das ich habe ist, dass ein Teil des Codes ich die ID benötigen jedoch für einen anderen Teil des Codes ich den Text benötigen. Ich kann die ID zurückbekommen, aber ich bin mir nicht sicher, wie ich auf den Text zugreifen soll, wenn sich der Wert ändert. Ich habe folgendes versucht
String test1 = MyComboBox.SelectedValue.ToString();
String test2 = MyComboBox.SelectedText.ToString();
Test1 ist die ID wie ich erwartet hatte. Allerdings ist test2 "" und ich kann keine Eigenschaften sehen, die den Anzeigewert anstelle des ausgewählten Werts angeben.
Windows Forms, nicht wahr? Haben Sie ['SelectedItem'] (https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selecteitem (v = vs.110) .aspx) versucht? 'SelectedText' ist nicht das, was Sie denken, es ist der Text, den der Benutzer mit der Maus auswählt, wenn die Combobox editierbar ist. –
ja ich hatte es versucht. Das Ergebnis war "System.Data.DataRowView", aber die Antwort von Fabio war, was ich zu tun versuchte. –
Rechts, Ihre Elemente sind DataRowView und SelectedItem ist die ausgewählte. Sie könnten SelectedItem in diesen Typ umwandeln und alle gewünschten Eigenschaften daraus erhalten: Zum Beispiel '((System.Data.DataRowView) MyComboBox.SelectedItem) [" Reason "]. ToString()'. 'ComboBox.Text' löst das Problem einfacher, aber jetzt wissen Sie, was SelectedItem ist. –