项目不会从可观察的集合中删除

时间:2015-12-01 11:22:29

标签: xamarin observablecollection xamarin.forms

在我的xamarin.forms应用程序中,我发现了一个问题,在我的购物车页面中我有一个+按钮,同时点击按钮项目添加到购物车如果我再次点击它将删除,但我无法删除导航回购物车页面后的项目。

btn_Cart.Clicked += (sender, e) =>{
                    sender = BindingContext;
                    cm_items item = (cm_items)sender;
                    Int32 inItemId = (BindingContext as cm_items).item_id;
                    var count = App.Instance.ViewModel.TempList.Count;
                    var value = App.Instance.ViewModel.TempList;
                    Boolean blInsertStatus = true;
                    try{
                        if (count == 0) {
                            item.IsAddedToCart = true;
                            value.Add(item);
                        }
                        else
                        {
                            for (int i = 0; i < count; i++)
                            {
                                if (value [i].item_id == inItemId)
                                {                                                                        
                                    value.Remove(item);
                                    blInsertStatus = false;
                                    item.IsAddedToCart = false;
                                    break;
                                }
                            }
                            if (blInsertStatus)
                            {
                                if (item.IsAddedToCart)
                                {
                                    item.IsAddedToCart = false;
                                    value.Remove(item);
                                }
                                else
                                {
                                    item.IsAddedToCart = true;
                                    value.Add(item);
                                }
                            }
                        }
                    }                        
                    catch (Exception ex)
                    {
                        System.Diagnostics.Debug.WriteLine(ex.ToString());
                        throw;
                    } };

当我第一次删除某个项目时没有问题,但导航到不同的页面后,它会产生trouble.item没有被删除,图像也不会被更改。我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

您的活动是否可能会被注册两次而这会导致麻烦?

首次访问页面:btn_Cart.Clicked + = ...

第二次访问页面:btn_Cart.Clicked + = ...

多久会调用一次“btn_Cart.Clicked”?为了进行更好的调试,我建议添加一些调试输出。类似于:“项目已添加”,“项目已删除”。这样你就可以看到你的代码实际上做了什么。