【问题标题】:How to get Id from ComboBox in C# windows Form Application如何从 C# windows Form Application 中的 ComboBox 获取 Id
【发布时间】:2016-11-21 19:54:09
【问题描述】:

我有一个ComboBox 这样填写:

List<Category> CategList = new Category().getAllCategory();

foreach (Category cat in CategList)
{            
    ComboForCategory.Items.Add(cat.CategoryName);
}

ComboBox 成功显示所有CategoryName 详细信息...现在我需要从选定的Name 中获取CategoryID...

然后我曾经像这样得到CategoryID

Item ob = new Item();
ob.category.CategoryId = ComboForCategory.SelectedValue.ToString();

但它显示错误。为什么?如何从选定的Name 中获取CategoryID

【问题讨论】:

    标签: c# combobox c#-2.0


    【解决方案1】:

    您需要在后面的代码中指定 ValueMember 属性。然后,您可以使用 DisplayMember 指定要显示的对象的哪个属性。

    List<Category> CategList = new Category().getAllCategory();
    
    ComboForCategory.DataSource = CategList;
    ComboForCategory.DisplayMember = "CategoryName";
    ComboForCategory.ValueMember = "CategoryId";
    

    那么当你想要获取 SelectedValue 时,你可以这样调用它:

    ob.category.CategoryId = Convert.ToInt32(ComboForCategory.SelectedValue);
    

    (不需要使用 ToString())。

    【讨论】:

    • 您说这是针对 Windows 窗体应用程序的,但这个答案是针对 Web 窗体应用程序的。请指定哪个。
    • 我在 Windows 窗体应用程序中对此进行了测试,它运行良好。如果您有错误,则有其他原因导致错误。您可以发布您遇到的错误的屏幕截图吗?
    • 我刚刚注意到您在“c# 2.0”下标记了您的问题,这个答案是使用 .Net Framework 4 完成的。
    • 它是使用框架 4.5 完成的,所以这可能是它不适合你的原因。
    【解决方案2】:

    使用隐藏 ID 从数据库中设置 comboBox 中的值

    var collection = dbContext.Category;
    
    comboBox1.DisplayMember = "Column-Name";
    comboBox1.ValueMember = "ID";
    comboBox1.DataSource = collection;
    

    要在comboBox 中设置 id 值,只需编写

    comboBox.SelectedValue = "Id";
    

    【讨论】:

      【解决方案3】:

      复制粘贴

      model.CategoryID = Guid.Parse(comboBox1.SelectedValue.ToString());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-14
        • 2014-08-23
        • 2010-11-20
        • 1970-01-01
        • 2020-08-28
        • 2018-02-03
        相关资源
        最近更新 更多