C# 如何在C中动态添加到列表
我有一个集合类,它是一个放置列表对象的类,成分对象列表的内容通过绑定显示在一个复选框中 我试图做的是,当用户单击其中一个列表项时,该特定项中的信息将复制到另一个名为List myPizza的列表中,然后该列表将显示在列表上。我希望所有数据都进入其中的原因是,一旦进入myPizza列表,我会对数据做更多的事情 我尝试过这样做,但似乎不起作用,下面是CollectionClass、windows窗体和Component类。我没有费心把比萨饼类,因为它与配料类是一样的 我知道如何使用item将其添加到列表框中,但我确实希望将其添加到列表中,然后将列表添加到列表框中 我希望这是有意义的,对编程来说是新的。谢谢 配料类 收藏课C# 如何在C中动态添加到列表,c#,list,listbox,C#,List,Listbox,我有一个集合类,它是一个放置列表对象的类,成分对象列表的内容通过绑定显示在一个复选框中 我试图做的是,当用户单击其中一个列表项时,该特定项中的信息将复制到另一个名为List myPizza的列表中,然后该列表将显示在列表上。我希望所有数据都进入其中的原因是,一旦进入myPizza列表,我会对数据做更多的事情 我尝试过这样做,但似乎不起作用,下面是CollectionClass、windows窗体和Component类。我没有费心把比萨饼类,因为它与配料类是一样的 我知道如何使用item将其添加到
那么,您想获取检查项目的比萨饼详细信息吗?还有,比萨饼类在哪里?是的,我想获得每个点击物品的所有详细信息,并将它们添加到我的比萨饼列表中。。我没有添加Pizza类,因为它与配料类完全相同。您可能需要Pizza类中的List属性。然后你会将所选的配料添加到列表中。我该怎么做?所以你有一个列表框,每个项目都是一个复选框,对吗?您使用了哪种C UI实现?WPF还是WindowsForm?
public partial class Form1 : Form
{
//List<Ingredient> myIngredient = new List<Ingredient>();
List<Pizza> myPizza = new List<Pizza>();
CollectionClass myCollections = new CollectionClass();
public Form1()
{
InitializeComponent();
myCollections.createList();
checkedListBoxIngredients.DataSource = new BindingSource(myCollections.myIngredient, null);
checkedListBoxIngredients.DisplayMember = "DisplayName";
}
private void checkedListBoxIngredients_ItemCheck(object sender, ItemCheckEventArgs e)
{
foreach (Pizza pizza in myPizza)
{
checkedListBoxIngredients.Items.Add(pizza.ToppingName);
checkedListBoxIngredients.Items.Add(pizza.UnitName);
checkedListBoxIngredients.Items.Add(pizza.Cost);
checkedListBoxIngredients.Items.Add(pizza.DescriptionName);
}
if (e.NewValue == CheckState.Checked)
{
yourPizza.DataSource = new BindingSource(myPizza, null);
yourPizza.DisplayMember = "DisplayName";
}
}
}
public class Ingredient
{
public string ToppingName { get; set; }
public string UnitName { get; set; }
public int Cost { get; set; }
public string DescriptionName { get; set; }
public Ingredient(string pizzaToppingName, string pizzaToppingUnit, int pizzaCost, string pizzaDescription)
{
ToppingName = pizzaToppingName;
UnitName = pizzaToppingUnit;
Cost = pizzaCost;
DescriptionName = pizzaDescription;
}
public string DisplayName
{
get
{
return ToppingName + " $"+Cost;
}
}
public override string ToString()
{
return ToppingName;
}
}
public class CollectionClass
{
public List<Ingredient> myIngredient = new List<Ingredient>();
public void createList()
{
myIngredient.Add(new Ingredient("Cheese", "grams", 3, "grab cheese and sprinkle on top of pizza"));
myIngredient.Add(new Ingredient("Olives", "grams", 2, "cut up olives and sprickle on pizza"));
myIngredient.Add(new Ingredient("Ham", "grams", 1, "spread cut up ham over pizza"));
myIngredient.Add(new Ingredient("Pineapple", "grams", 1, "spread cut up chunks over pizza"));
myIngredient.Add(new Ingredient("Pepperoni", "pieces", 1, "place slices on pepperoni on pizza"));
myIngredient.Add(new Ingredient("Onion", "handfuls", 1, "sprinkle cut up onion on pizza, try not to cry"));
myIngredient.Add(new Ingredient("Peppers", "grams", 1, "sprinkle cut up peppers on pizza"));
myIngredient.Add(new Ingredient("Anchovy", "grams", 1, "place on top of pizza"));
myIngredient.Add(new Ingredient("Mushrooms", "grams", 1, "put gently on top of pizza"));
}
public void displayList()
{
foreach (Ingredient ingred in myIngredient)
if (ingred != null)
{
Console.WriteLine("{0} {1} ${2}.00, {3}",
ingred.ToppingName, ingred.UnitName, ingred.Cost,
ingred.DescriptionName);
}
}
}