2017-02-27 22 views
1

我有一個按鈕,可以從控件中獲取項目並添加到列表中。 如圖所示如何添加到List Generic on each button點擊

這是我的oles那持有的價值觀。

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保存已添加到其中的每個項目,並且我不知道如何去做。

我也將列表綁定到WPF數據網格。所以在顯示第一個添加的項目後,它不會顯示任何更多的添加項目。

+0

你必須刪除此行'SelectedList =新列表();從所述方法',它總是重新初始化列表。 – dcg

回答

1
SelectedList = new List<SelectedPurchaseItems>(); 

是重新初始化您的列表的行。您應該刪除它,並將初始列表初始化移動到構造函數或其他地方

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); 
    } 
} 
+0

我已經完成了這個'public List SelectedList = new List (); private void btnSaveModalSelectItem_Click(object sender,RoutedEventArgs e) { ...'並且仍然不起作用。 –

+0

@MIchealDavid - 你還刪除了'SelectedList = new List ();'點擊方法中的行嗎? – Enigmativity

+0

是的,我試圖將它綁定到DataGrid上,每次單擊'DataGridSelectedPurchaseItems.ItemsSource = SelectedList;'。但顯示第一個添加後,它不會再顯示任何添加的項目。 –