2

1 つの記事にはNamePriceプロパティがあります。Name プロパティを使用してcmbDataList、このようにコンボボックス内に記事を表示します

public Form1()
{
    InitializeComponent();
    cmbDataList.DataSource = GetData();
    cmbDataList.DisplayMember = "Name";
}

ユーザーが好みの記事を選択した後、そのPriceプロパティを使用して同じフォームのテキストボックスに割り当てたいと思います。Priceでは、そのプロパティにアクセスするにはどうすればよいでしょうか。

private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
    //var sel = cmbDataList.SelectedItem;
}
4

4 に答える 4

3

SelectedItem適切なオブジェクトにキャストする必要があります。

private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
    var sel = (YourObject)cmbDataList.SelectedItem;
    txt.Text = sel.Price.ToString();
}
于 2013-07-01T10:50:04.257 に答える
3

すべての名前が一意でない限り、記事 ID など、参照する一意の識別子が必要になります。

ここから、ComboBox を次のValueMemberように設定します。

cmbDataList.ValueMember = "ID";

次に、イベント ハンドラーで値を取得できます。

private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
    var sel = cmbDataList.SelectedValue;

    //From here you're going to need to find your article with that particular ID.
}

あるいは。DisplayMemberを記事名として、価格を として、上記と同じ方法でValueMemberのイベント ハンドラーで取得することができます。次に、価格を返します。SelectedIndexChangedSelectedValue

cmbDataList.ValueMember = "Price";

private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
    var yourSelectedPrice = cmbDataList.SelectedValue;


}
于 2013-07-01T10:50:42.497 に答える
0

ValueMember を設定する必要があります この方法で設定できます

cmbDataList.ValueMember = "ID";

次に、cmbDataList_SelectedIndexChanged イベントにコードを記述します。

これはあなたを助けるかもしれません

var sel = cmbDataList.SelectedValue

于 2013-07-01T10:58:05.087 に答える