}//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
}//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