从 observable collection 中获取最后删除的值

Get the last removed value from observable collection

我是 Microsoft 世界的新手。我正在使用 Xamarin.Forms 开发一个 E-commerce 应用程序。 我正在使用 ObservableCollection 绑定 ListView ItemSource。我的所有数据都是从本地数据库中检索的。

    ObservableCollection<CatlougeData>items;
    public PlaceOrderPage ()
    {
        InitializeComponent ();

        var CartList =App.Database.GetAllItems ();
        items = new ObservableCollection<CatlougeData> (CartList);
        pickedItemList.ItemsSource = items;
        lblGrandTotal.Text=App.Database.GetGrandTotal ().ToString ();

    }

我在购物车 ListView 中添加了删除上下文菜单以删除选定的购物车。

删除代码

   public void OnDeleteMenu (object sender, EventArgs e) {
        var SelectedMenu = ((MenuItem)sender);
    items.Remove ((CatlougeData)SelectedMenu.CommandParameter);
 }

当我删除购物车商品时,我想更新我的数据库。为了能够做到这一点,我想访问最近删除的 collection 项目。我被困在这个阶段。 谁能指出我正确的方向?

您可以尝试连接到 ObservableCollection 的 CollectionChanged 事件。然后,您可以通过 NotifyCollectionChangedEventArgs 确定是否添加或删除了项目。

更多信息,请参考以下文档 https://msdn.microsoft.com/en-us/library/ms653375(v=vs.110).aspx

最简单的答案是在使用您的 OnDeleteMenu 方法时,在删除之前存储变量:

private CatlougeData LastDeletedItem { get; set;}

public void OnDeleteMenu (object sender, EventArgs e) 
{
    var SelectedMenu = ((MenuItem)sender);
    LastDeletedItem = (CatlougeData)SelectedMenu.CommandParameter;
    items.Remove ((CatlougeData)SelectedMenu.CommandParameter);
 }