2

と のコンボボックスがValueMember = IDありDisplayMember = Nameます。その名前に関連付けられている値が必要なので、次のようにします。

if (cboTypeOfMaterial.SelectedIndex != -1)
            {
                string temp = cboTypeOfMaterial.SelectedValue.ToString();
                //More code here...
            }

値を文字列として返しIDます。たとえば、「7」。

私が試してみると:

if (cboTypeOfMaterial.SelectedIndex != -1)
                {
                    string temp = cboTypeOfMaterial.DisplayMember.ToString();
                    //More code here...
                }

キーとなる文字列を取得しNameます。

そして、私が必要とするのは、選択した要素の値を取得することですName

4

6 に答える 6

4

そのエントリに関連付けられたオブジェクト全体を提供する要素にアクセスしてみてください。SelectedItemそうすれば、必要なプロパティにアクセスできますID

于 2013-02-26T07:41:40.310 に答える
4

SelectedValueは で定義されたプロパティの値を返し、ValueMemberSelectedItem選択されているオブジェクト全体を返します。別の値を取得したい場合はSelectedValue、 のオブジェクトとしてキャストする必要があります。ComboBoxその後、プロパティにアクセスできますName

string temp = (cboTypeOfMaterial.SelectedItem as YourObjectType).Name;
于 2013-02-26T07:43:41.127 に答える
1

できることは、comboBox のエントリのカスタム クラスを作成することです。これは次のようになります。

public class ComboBoxItem
{
    public string Display { get; set; }
    public int Id { get; set; }
    public override string ToString()
    {
        return this.Display;
    }
}

次に、次のコードを使用して、選択した ComboBoxItem を取得できます。

ComboBoxItem cbi = (ComboBoxItem)cboTypeOfMaterial.SelectedValue;
if(cbi != null)
   // Access the Property you need
于 2013-02-26T07:46:42.233 に答える
0
string temp = cboTypeOfMaterial.ValueMember.ToString();
于 2013-02-26T07:46:09.027 に答える
-2

Text プロパティも使用できると思いますが、良い解決策ではありません。より良い解決策は、@dutzu が提案するものです。

string temp = cboTypeOfMaterial.Text;
于 2013-02-26T07:49:33.963 に答える