表示するテキスト値と別のコンボボックスをフィルタリングするために必要な数値を含む複数の列を持つデータセットがあります。C3 comboBox異なる表示と値のメンバーですが両方にアクセスする必要があります
MyComboBox.DisplayMember = "Reason";
MyComboBox.ValueMember = "ReasonID";
MyComboBox.DataSource = MyDataTable;
私が持っている問題は、コードの一部ですが、コードの別の部分には必要ですが、テキストが必要です。私はIDを取得することができますが、値が変わったときにテキストにアクセスする方法がわかりません。私は以下を試しました
String test1 = MyComboBox.SelectedValue.ToString();
String test2 = MyComboBox.SelectedText.ToString();
Test1は期待どおりのIDです。しかし、test2は ""であり、選択した値の代わりに表示値を与えるプロパティは表示されません。
Windowsフォームのテキストではないでしょうか? ['SelectedItem'](https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selecteditem(v = vs.110).aspx)を試しましたか? 'SelectedText'はあなたの考えではなく、コンボボックスが編集可能な場合、マウスで選択したテキストです。 –
はい私はそれを試みました。結果は "System.Data.DataRowView"でしたが、以下のFabioの答えは私がやろうとしていたものでした。 –
右のアイテムはDataRowViewであり、SelectedItemは選択されたものです。たとえば、 '((System.Data.DataRowView)MyComboBox.SelectedItem)[" Reason "]。ToString()'のように、SelectedItemをその型にキャストして、そこから任意のプロパティを取得できます。 'ComboBox.Text'は問題をより簡単に解決しますが、SelectedItemが何であるかがわかります。 –