/// <summary> /// 更新部分 /// </summary> private void RefreshSome(List <long> RoomsId) { Xamarin.Forms.Device.BeginInvokeOnMainThread(() => { foreach (var RoomId in RoomsId) { RoomModel item = Resources.Instance.RoomsModel.Where(x => x.RoomId == RoomId).FirstOrDefault(); RoomStateModel model = RoomLists.Where(x => x.RoomId == RoomId).FirstOrDefault(); if (null == model) { RoomStateModel newRoomStateModel = new RoomStateModel() { RoomId = item.RoomId, RoomNo = item.RoomNo, UseState = (null != item.PayOrder), OrderSession = item.OrderSession, PayOrder = item.PayOrder }; AddList(newRoomStateModel); } else { if (null != item && null != model && model.OrderSession != item.OrderSession) { RoomStateModel oldModel = RoomLists.Where(x => null != x.OrderSession && x.OrderSession.Equals(model.OrderSession, StringComparison.Ordinal)).FirstOrDefault(); int no = RoomLists.Count; RoomStateModel newRoomStateModel = new RoomStateModel() { RoomId = item.RoomId, RoomNo = item.RoomNo, UseState = (null != item.PayOrder), OrderSession = item.OrderSession, PayOrder = item.PayOrder }; if (null != oldModel) { no = RoomLists.IndexOf(oldModel); ReplaceSelected(no, oldModel, newRoomStateModel); } else { AddList(newRoomStateModel, no); } } else { if (null != model && item == null) { RoomStateModel oldModel = RoomLists.Where(x => x.OrderSession.Equals(model.OrderSession, StringComparison.Ordinal)).FirstOrDefault(); if (null != oldModel) { RemoveSelected(oldModel); } } } } } RefreshAll(true); }); }