【问题标题】:Get the last removed value from observable collection从可观察集合中获取最后一个移除的值
【发布时间】:2015-04-21 18:29:06
【问题描述】:

我是 Microsoft 世界的新手。我正在使用 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 ();

    }

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

删除代码

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

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

【问题讨论】:

  • 您没有随身携带已删除的物品吗?
  • @Sanjeetharan 我正在通过传递命令参数从集合中删除项目。所以你知道吗?

标签: c# xamarin observablecollection xamarin.forms


【解决方案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);
 }

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      相关资源
      最近更新 更多