C# 无法将ListBox项转换为实体数据库类

C# 无法将ListBox项转换为实体数据库类,c#,asp.net,listbox,C#,Asp.net,Listbox,我正在ASP.net上构建一个销售点系统。我有一个名为“tblProduct”的数据库表,我使用实体框架使用代码优先的方法将其转换为类。我创建了一个包含项的绑定列表,并将ListBox数据源绑定到绑定列表。当一个人选择一个产品时,该项目会进入绑定列表,因此会显示在列表框中,到目前为止,一切正常。我的列表框名称是“lbProductsChosen”,仅供参考 private static BindingList<tblProduct> blProducts = new BindingL

我正在ASP.net上构建一个销售点系统。我有一个名为“tblProduct”的数据库表,我使用实体框架使用代码优先的方法将其转换为类。我创建了一个包含项的绑定列表,并将ListBox数据源绑定到绑定列表。当一个人选择一个产品时,该项目会进入绑定列表,因此会显示在列表框中,到目前为止,一切正常。我的列表框名称是“lbProductsChosen”,仅供参考

private static BindingList<tblProduct> blProducts = new BindingList<tblProduct>();

protected void Page_Load(object sender, EventArgs e)
        {
            lbProductsChosen.DataSource = blProducts;
            lbProductsChosen.DataTextField = "Description";
            CreateTab();
            AddProductsToTab();
            ButtonResize();
        }
它给了我一个错误,并告诉我它“无法将'System.Web.UI.WebControls.ListItem'类型转换为'restoreAnu_POS.tblProduct'”

编辑:这里是我的按钮点击事件,只是为了清楚。当按下产品按钮时,它会将信息保存在其属性中,生成TBLPProduct类的新实例并将其放入绑定列表(blProducts)中


可以显示tblProduct模型吗?在product按钮上单击events(我没有在这里添加,但我想我应该添加),我创建了一个类tblProduct的新实例,并为它提供相应的按钮值。例如,它制作咖啡、设置价格等,并将此项添加到绑定列表中。现在,当我添加其中一些项目时,我希望能够将其从列表框中删除。事实上,除了表单应用程序之外,我还看到了它的工作原理,这是一个奇怪的部分。我将使用我的按钮单击事件进行编辑。在WebApplication Listbox中,SelectedItem不是Object类型。它的类型为ListItem,无法转换为绑定实体类型。您可以访问项目的值和文本。哦,我明白了。然后我可以看到selecteditem值,用循环在绑定列表中运行它,然后以这种方式删除它?你能显示tblProduct模型吗?在product button click events(我没有在这里添加,但我想我应该添加)上,我创建了一个类tblProduct的新实例,并给它相应的按钮值。例如,它制作咖啡、设置价格等,并将此项添加到绑定列表中。现在,当我添加其中一些项目时,我希望能够将其从列表框中删除。事实上,除了表单应用程序之外,我还看到了它的工作原理,这是一个奇怪的部分。我将使用我的按钮单击事件进行编辑。在WebApplication Listbox中,SelectedItem不是Object类型。它的类型为ListItem,无法转换为绑定实体类型。您可以访问项目的值和文本。哦,我明白了。然后我可以看到selecteditem值,通过循环在绑定列表中运行它,然后以这种方式删除它?
protected void btnDeleteItem_Click(object sender, EventArgs e)
    {
        tblProduct selectedItem = (tblProduct)lbProductsChosen.SelectedItem;
        blProducts.Remove(selectedItem);
    }
private void ProductButton_Click(object sender, EventArgs e)
        {
            Button b = (Button)sender;
            string description = b.Attributes["data-name"];
            decimal price = Convert.ToDecimal(b.Attributes["data-price"]);
            int productID = Convert.ToInt32(b.Attributes["data-prodID"]);
            int prodType = Convert.ToInt32(b.Attributes["data-prodType"]);
            tblProduct p = new tblProduct() { Description = description , Price = price , ProductID = productID , ProductType = prodType };
            blProducts.Add(p);
            lbProductsChosen.Items.Clear();
            lbProductsChosen.DataBind();
        }