C# 如何通过类内方法添加到listbox?
我在store类中的addproductto方法中有一个product类和一个store类。需要将它们分别添加到listbox1和listbox2中。为什么我的代码不起作用 表格1:C# 如何通过类内方法添加到listbox?,c#,winforms,list,oop,listbox,C#,Winforms,List,Oop,Listbox,我在store类中的addproductto方法中有一个product类和一个store类。需要将它们分别添加到listbox1和listbox2中。为什么我的代码不起作用 表格1: static public List<Product> plist = new List<Product>(); static public List<Store> slist = new List<Store>(); slist.Ad
static public List<Product> plist = new List<Product>();
static public List<Store> slist = new List<Store>();
slist.Add(new Store { Name = "Bargin Basin" });
slist.Add(new Store { Name = "SuperMart" });
plist.Add(new Product { Label = "Potatoes", Price = 3.60 });
plist.Add(new Product { Label = "Fish", Price = 4.49 });
private void AddButton_Click(object sender, EventArgs e)
{
string curItem = comboBox1.SelectedItem.ToString();
// Create New Product
if (curItem == "Product")
{
FormP AP = new FormP();
if (AP.ShowDialog() == DialogResult.OK)
{
string _label = AP.textBox1.Text; double _price = Convert.ToDouble(AP.textBox2.Text);
var newproduct = new Product { Label = _label, Price = _price };
Store store = slist.Find(y => y == AP.comboBox1.SelectedItem);
// Store store = AP.comboBox1.SelectedItem as Store;
AddProductsToStore(store, newproduct);
listBox2.EndUpdate();
}
}
public static void AddProductsToStore(Store store, Product product)
{
store.AddProduct(product);
MessageBox.Show(String.Format("Product {0} added to store {1}", product.Label, store.Name));
}
课程:
public class Store
{
//public virtual int Id { get; protected set; }
public virtual string Name { get; set; }
public virtual IList<Product> Products { get; set; }
public virtual IList<Rab> Rabs { get; set; }
public Store()
{
Products = new List<Product>();
Rabs = new List<Rab>();
}
public virtual void AddProduct(Product product)
{
product.StoresStockedIn.Add(this);
Products.Add(product);
}
}
public class Product
{
// public virtual int Id { get; protected set; }
public virtual string Label { get; set; }
public virtual double Price { get; set; }
public virtual Location Location { get; set; }
public virtual IList<Store> StoresStockedIn { get; set; }
public Product()
{
StoresStockedIn = new List<Store>();
}
}
没有发生任何事情,代码继续工作,但列表框中没有任何更改,只显示问题代码中的程序创建项您在哪里向任何列表框添加任何内容??@Rotem listBox1DataSource=slist listBox2DataSource=plist@Rotem如何通过类内方法开始与plist的对话?AddProductsToStorestore,newproduct;请发布实际将项目添加到列表中的代码。这就是你需要帮助的,对吗?另外,我看到了对.EndUpdate的调用,但没有对.BeginUpdate的调用。