0

アイテムのリストから選択するオプションをユーザーに提供する必要があり、次に、ユーザーが選択した単一のアイテムを保留にして、そのアイテムから GUID を取得する必要があります。これは、Sql テーブルの Linq クエリから入力されます。

私はこれから始めました:

private void PopulateGatewayList()
{
  var gateways = from gw in _entities.Gateways
                 where gw.IsActive
                 select gw;

  foreach (var gateway in gateways)
  {
    checkedListBox_Gateways.Items.Add(gateway.Name);
  }
}

しかし、彼らが何かをチェックしたら、GUID を取得する方法がありません。

ユーザーに名前を付けて、GUID を返す良い方法は何ですか?

** 答え **

Michael Yoon の助けを借りて、次のことを行いました。

private void PopulateGatewayList()
{
  var gateways = from gw in _entities.Gateways
                 where gw.IsActive
                 select gw;

  foreach (var gateway in gateways)
  {
    checkedListBox_Gateways.Items.Add(new ListItem(gateway.Name, gateway.GatewayId.ToString()));
    //checkedListBox_Gateways.Items.Add(gateway.Name);
  }
}


private void checkedListBox_Gateways_SelectedIndexChanged(object sender, EventArgs e)
{
  foreach (Object selecteditem in checkedListBox_Gateways.SelectedItems)
  {
    var strItem = selecteditem as ListItem;
    Console.WriteLine("Selected: " + strItem.Value);
  }
}
4

1 に答える 1

1

ID と文字列を含むコレクションにオブジェクトを追加する必要があります。KeyValuePair を使用するか、独自のものを作成できます。私の例では keyvaluepair を使用します。

checkedListBox_Gateways.DisplayMember = "Key";
checkedListBox_Gateways.ValueMember = "Value";
checkedListBox_Gateways.Items.Add(new KeyValuePair<string, string>(gateway.Name, gateway.Id.ToString()));

次に、SelectedItems コレクションを列挙し、それぞれをキーと値のペアにキャストして、そこから値を取得できます。

于 2013-06-07T02:03:12.647 に答える