0

以下を使用して、WPF ListView にバインドしItemsSource="{Binding Path=ProductList}"ます。

   private ObservableCollection<SalesItem> _ProductList = new ObservableCollection<SalesItem>();
            public ObservableCollection<SalesItem> ProductList { get { return _ProductList; } set { _ProductList = value; } }

ListView に新しい行を挿入します。

SalesItem item = new SalesItem { Picture = product.Picture, ProductName = product.Name, Quantity = 1, TotalPrice = product.Price };
            ProductList.Add(item);

今私はしたいupdate the quantity, and price, if the quantity is zero, remove from list

  List<SalesItem> salesItems = (from SalesItem items in this.dgProductList.ItemsSource
                                     select items).ToList<SalesItem>();

        foreach (SalesItem salesItem in salesItems)
        {
            if (salesItem.ProductName == cbMultiProductList.Text.Trim())
            {
                // Increase item quantity
                salesItem.Quantity = salesItem.Quantity + 1;
            }
        }

ありがとうございました。


編集:

SalesItemEFコードファーストモデルです。

これを試してみましたが、問題は新しい行が最後の行に追加されることです:

ProductList.Remove(salesItem);
ProductList.Add(salesItem);
4

1 に答える 1

0

そのためには、SalesItem クラスに INotyfyPropertyChanged を実装し、各プロパティに Notify を実装する必要があります。

于 2012-10-16T03:54:53.530 に答える