0

ユーザーに選択するいくつかの項目を含むリストボックスを表示する C# Windows フォームを作成しています。その選択によって、クエリの基準が決まります。クエリは、ID と説明の 2 つのフィールドを返します。フォームの 2 番目のリスト ボックスに説明を表示したいのですが、その説明がリスト ボックスで選択されている場合は、その後の処理に ID を使用します。

私がやろうとしていることの詳細は次のとおりです。

ListBox1
Accessories
Men's
Women's
Children

ユーザーが「アクセサリ」を選択すると、クエリが実行されて次のように返されます。

1234   Belts
2345   Scarves
4566   Handbags

ListBox2 は説明を表示します

Belts
Scarves
Handbags

しかし、ユーザーがベルトをダブルクリックすると、クラス インスタンスのフィールドに 1234 が追加されます。リスト ボックスに項目を追加し、ID を知ることができるようにするには、クエリの結果をどのようなリストに入れる必要がありますか?

ありがとう!レスリー

4

2 に答える 2

2

WinForms と WPF はどちらも非常に柔軟です。Accessories オブジェクトを Items プロパティに追加するだけです。または、DataSource を既存のリストに設定します。

デフォルトの表示はスルーToString()ですが、DisplayMember を特定のプロパティの名前に設定できます。

SelectedItem を介してオブジェクト全体を取得できます。および/または ValueMember を設定し、SelectedValue を読み取ります。

于 2013-07-07T20:46:03.463 に答える
2

.NET リスト ボックスでは、項目リストは単なる文字列のリストではなく、オブジェクトです。コンポーネントはオブジェクトの文字列値を使用して表示しますが、選択した値を確認するときに ID を参照できます。

このようにクラスを定義します

class Choices
{
   public string Name;
   public int ID;

   public override string ToString()
   {
      return name;
   }
}

リストにこのクラスのインスタンスを入力すると、準備完了です。

于 2013-07-07T20:48:06.527 に答える