我该如何给用户一个选择并从那个选择中获取向导

本文关键字:选择 向导 获取 一个 给用户 | 更新日期: 2023-09-27 18:17:15

我必须为用户提供从项目列表中进行选择的选项,然后,根据他们选择的单个项目,我需要从该项目中获取向导。这将从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);
  }
}

但是一旦他们检查了什么,我没有办法抓住向导。

给用户名字但给我返回向导的好方法是什么?

** ANSWER **

在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);
  }
}

我该如何给用户一个选择并从那个选择中获取向导

您需要向集合中添加一个包含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集合,将每个集合强制转换回keyvaluepair并从中获取值。