2016-07-06 10 views
0

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.

+0

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. –

+0

ja ich hatte es versucht. Das Ergebnis war "System.Data.DataRowView", aber die Antwort von Fabio war, was ich zu tun versuchte. –

+0

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. –

Antwort

0

Verwenden ComboBox.Text Property

string value = MyComboBox.Text; 

Text Eigenschaft enthält Wert von DisplayMember ausgewähltem Artikel in Ihrem Fall.

Über ComboBox.SelectedText von MSDN

Ruft den Text, der in dem bearbeitbaren Teil eines ComboBox ausgewählt ist.

Das ist also kein Text ausgewählter Artikel

+0

Doh ... danke ich hatte einen kompletten blonden Moment. Ich wusste, dass es etwas Einfaches geben musste, das ich vermisste. –