我是微软世界的新手。我正在使用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);
}
当我删除购物车项目时,我想要更新我的数据库。为了能够做到这一点,我想访问最近删除的集合项。我被困在这个阶段。 有人能指出我正确的方向吗?
答案 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);
}