2017-02-27 8 views
1

私はコントロールからアイテムを取得し、リストに追加するボタンを持っています。 示されている通りリストに追加する方法ボタンごとに汎用ボタンをクリックします。

これは私のojects thats値を保持しています。

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; 
    } 
} 

マイチャレンジ今、それはリストに項目を追加し、いつでも、それは常に可能リストを再初期化しない私のメイン・ウィンドウクラスであります前の項目がクリアされました。 しかし私の目的は、リストに追加された各アイテムを保持することです。そのことについてはわかりません。

また、リストを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 ();を実行しました。 プライベートvoid btnSaveModalSelectItem_Click(オブジェクト送信者、RoutedEventArgs e) { ... 'まだ動作しません。 –

+0

@MIchealDavid - クリックメソッドで 'SelectedList = new List ();'行も削除しましたか? – Enigmativity

+0

ええ、私はそれをDataGridにバインドしようとしています。 'DataGridSelectedPurchaseItems.ItemsSource = SelectedList;'をクリックするたびにバインドしようとしています。しかし、最初に追加したものを表示した後、追加されたアイテムは再び表示されません。 –

関連する問題