更新和删除listview行

时间:2012-10-16 03:51:48

标签: c# wpf

使用ItemsSource="{Binding Path=ProductList}"

将其绑定到WPF ListView
   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;
            }
        }

谢谢。


编辑:

SalesItem是EF Code第一个模型。

试过这个,问题是他的新行会追加到最后一行:

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

1 个答案:

答案 0 :(得分:0)

为此,您需要在SalesItem类中实现INotyfyPropertyChanged并为每个Property实现Notify。