从另一个wpf窗口向列表框添加项目

时间:2015-11-27 13:30:26

标签: c# wpf listbox

所以我的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

1 个答案:

答案 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关键字,可能让代码以您希望的方式运行。