所以我的MainWindow包含一个列表框menu_listbox
和一个按钮Add_menu_item
,点击后会打开第二个wpf窗口New_menu_item
,其中我有texboxes和一个按钮{{ 1}}
单击butoon时,它会关闭Add_new_menu_item
窗口,并在我尝试添加新项目时将值添加到类New_menu_item
,所有以前的项目都更新为添加的新项目。代码使用如下:
new_listbox_item
有没有人对如何解决这个问题有任何想法?
private void add_menu_item_Click(object sender, RoutedEventArgs e)
{
new_menu_item form1 = new new_menu_item();
form1.ShowDialog();
new_listbox_item M_item = new new_listbox_item();
M_item.new_item_name = form1.new_food.Text;
M_item.price = double.Parse(form1.food_price.Text);
M_item.vegitarian = form1.is_vegetarian.IsChecked == true;
menu_Listbox.Items.Add(M_item);
}
看起来像这样:
new_listbox_item
答案 0 :(得分:0)
所有以前的项目都更新为新添加的项目
如果没有可靠地再现问题的a good, minimal, complete code example,就无法确定问题是什么。但鉴于您发布的代码,肯定有一个严重的代码缺陷可以解释您的问题。您已将类中的所有字段声明为static
:
public class new_listbox_item
{
private static string _item_name;
private static Boolean _vegitarian;
private static double _price;
private static double _total;
...
}
通过这样做,您已导致new_listbox_item
类的每个实例共享字段。在一个实例中设置字段会导致每个其他实例使用新值;每个实例不都有自己的字段本地副本。
从所有这些字段中删除static
关键字,可能让代码以您希望的方式运行。