示例#1
0
        }//AddNewList

        public void ProcessMessage(Intent intent)
        {
            //intent.GetStringExtra("WearMessage");
            ShoppingListDTO wantedList = ListsManager.Instance.Lists.Where(x => x.InternalId == m_data.InternalId).FirstOrDefault(); //check if the list was not deleted

            if (wantedList == null)
            {
                StartActivity(new Intent(this, typeof(AcShoppingLists)));
                return;
            }//endif

            var allUiLists = wantedList.Items.Where(x => x.IsDeleted == false).OrderBy(x => x.Date).ToList();

            ViewGroup viewGroup = (ViewGroup)llLst;

            //remove all that are not in the datalist
            for (int i = 0; i < viewGroup.ChildCount; i++)
            {
                CtrlItemList child = viewGroup.GetChildAt(i) as CtrlItemList;
                if (child == null)
                {
                    continue;
                }
                var foundItem = allUiLists.Where(x => x.InternalId == child.Data.InternalId).FirstOrDefault();
                if (foundItem == null)
                {
                    ((child as View).Parent as ViewGroup).RemoveView(child);
                }
            }//for

            for (int i = 0; i < allUiLists.Count; i++)
            {
                CtrlItemList wantedView = null;
                for (int j = 0; j < viewGroup.ChildCount; j++)
                {
                    CtrlItemList child = viewGroup.GetChildAt(j) as CtrlItemList;
                    if (child.Data.InternalId == allUiLists[i].InternalId)
                    {
                        wantedView = child;
                        break;
                    }
                }//for

                if (wantedView != null)
                {
                    // update the existing ones
                    wantedView.UpdateCtrlData(allUiLists[i]);
                }
                else
                {
                    CreateUIItem(allUiLists[i], i);
                }
            } //for
        }     //ProcessMessage
示例#2
0
        }//GenerateUILists

        private void CreateUIItem(ItemListDTO newItem, int position = 0)
        {
            CtrlItemList item = new CtrlItemList(this, ShAppContext, newItem);

            item.Event_DeleteItem += (x) =>
            {
                var view = FindViewById <CtrlItemList>(x);
                if (view != null)
                {
                    (llLst as ViewGroup).RemoveView(view);
                    ListsManager.Instance.DeleteListItem(m_data.InternalId, view.Data.InternalId);
                }//endif
            };

            item.Event_BuyItem += (intId, status) => {
                ListsManager.Instance.ItemBought(m_data.InternalId, intId, status);
            };

            llLst.AddView(item, position);
            llLst.RequestLayout();
        }//CreateUIList