从可观察集合中获取最后一个删除的值

时间:2015-04-21 09:58:31

标签: c# xamarin observablecollection xamarin.forms

我是微软世界的新手。我正在使用Xamarin.Forms开发一个电子商务应用程序。 我使用 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 ();

    }

我在购物车列表视图中添加了删除上下文菜单,以删除所选购物车。

删除代码

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

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

2 个答案:

答案 0 :(得分:1)

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

有关详细信息,请参阅以下文档 https://msdn.microsoft.com/en-us/library/ms653375(v=vs.110).aspx

答案 1 :(得分:1)

最简单的答案是在使用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);
 }