如何获取选定组合框的值成员以使用它通过 linq 添加新对象

coc*_*oco 0 c# linq combobox

我正在尝试使用 linq 创建一个新对象并将其添加到我的数据库中。类别和供应商的值是从组合框中选择的。组合框数据源来自数据库(我使用了 linq),DisplayMember 和 Valuemember 也是如此。我无法获取所选组合框的值(valueMember)来使用它来创建新对象。我不明白有什么问题。

这是我的代码:

 DataClasses1DataContext db = new DataClasses1DataContext();
    bool lo;

    public Form2()
    {
        InitializeComponent();
        lo = false;

        var category = from Category in db.Categories
                       select new
                      {
                           categorytName = Category.CategoryName,
                           categoryID = Category.CategoryID
                      };

        comboBox1.DataSource = category;
        comboBox1.DisplayMember = "categorytName";
        comboBox1.ValueMember = "categoryID";

        var supplier = from Supplier in db.Suppliers
                       select new
                       {
                           suppliertName = Supplier.CompanyName,
                           supplierID = Supplier.SupplierID
                       };

        comboBox2.DataSource = supplier;
        comboBox2.DisplayMember = "suppliertName";
        comboBox2.ValueMember = "supplierID";
        lo = true;

    }

    private void button1_Click(object sender, EventArgs e)
    {
        // Create a new product.
        Product newProduct = new Product
        {
            ProductName = textBox1.Text,
            UnitPrice = Convert.ToDecimal(textBox2.Text),
            CategoryID = comboBox2.ValueMember,
            //SupplierID = Convert.ToInt32(comboBox1.Text)
        };

        // Add the new object to the product collection.
        db.Products.InsertOnSubmit(newProduct);

        //Submit all changes.
        db.SubmitChanges();

    }
Run Code Online (Sandbox Code Playgroud)

Kah*_*azi 6

代替:

comboBox2.ValueMember
Run Code Online (Sandbox Code Playgroud)

和:

comboBox2.SelectedValue
Run Code Online (Sandbox Code Playgroud)