我有一个按钮,可以从控件中获取项目并添加到列表中。 如图所示
这是我掌握价值观的对象。
public class SelectedPurchaseItems
{
public int ItemId { get; set; }
public string ItemName { get; set; }
public double PurchasePrice { get; set; }
public int Quantity { get; set; }
public string UnitOfMeasure { get; set; }
public double Total { get; set; }
}
这是我的主窗口类,它会添加到列表
public partial class MainWindow : Window
{
public List<SelectedPurchaseItems> SelectedList;
private void btnSaveModalSelectItem_Click(object sender, RoutedEventArgs e)
{
SelectedList = new List<SelectedPurchaseItems>();
SelectedPurchaseItems _value = new SelectedPurchaseItems()
{
ItemId = Convert.ToInt32(comboboxSelectItemItem.SelectedValue),
ItemName = comboboxSelectItemItem.Text,
PurchasePrice = _purchasePrice,
Quantity = _quantity,
UnitOfMeasure = comboboxSelectItemUnitofMeasure.Text,
Total = _total
};
SelectedList.Add(_value);
DataGridSelectedPurchaseItems.ItemsSource = SelectedList;
}
}
我现在的挑战是,每当它向List添加一个项目时,它总是重新初始化列表,这使得前一个项目被添加为清除。 但我的目标是让List保留已添加到其中的每个项目,我不知道如何去做。
我还将列表绑定到WPF数据网格。因此,在显示第一个添加的项目后,它不会显示任何进一步添加的项目。
答案 0 :(得分:1)
SelectedList = new List<SelectedPurchaseItems>();
是重新初始化列表的行。您应该删除它,并将初始列表初始化移动到构造函数或其他地方
答案 1 :(得分:0)
不要在按钮点击中重新实例化它。只需初始化一次,如下所示:
public partial class MainWindow : Window
{
public List<SelectedPurchaseItems> SelectedList = new List<SelectedPurchaseItems>();
public MainWindow()
{
DataGridSelectedPurchaseItems.ItemsSource = SelectedList;
}
private void btnSaveModalSelectItem_Click(object sender, RoutedEventArgs e)
{
SelectedPurchaseItems _value = new SelectedPurchaseItems()
{
ItemId = Convert.ToInt32(comboboxSelectItemItem.SelectedValue),
ItemName = comboboxSelectItemItem.Text,
PurchasePrice = _purchasePrice,
Quantity = _quantity,
UnitOfMeasure = comboboxSelectItemUnitofMeasure.Text,
Total = _total
};
SelectedList.Add(_value);
}
}