protected virtual void Query()//可以重写查询 { //设置页面状态 this.PageState = EnDic_PageState.查询中; //开始异步查询 var tk = Task <dynamic> .Run(() => this.QueryTK()); //查询结束,回到主线程,恢复页面状态 tk.GetAwaiter().OnCompleted(() => { //此处替换不能在异步中进行 //如果此处直接赋值,则会闪烁 DeepCopyUtility.SetValue <RUID>(this.ItemSource, tk.Result.list); //处理提示 if (tk.Result.info != string.Empty)//如果消息不是空的,需要处理返回结果 { this.ResultMessage = new CustomerMessageData(EnDic_MessageType.浮出, "查询提示", string.Format("查询过程出现问题:“{0}”", tk.Result), null); } //无论是否成功,都恢复页面状态 this.PageState = EnDic_PageState.默认状态; }); }
public ObservableCollection <UIStrategy.UserRUIDUIStrategy> GetModels(dynamic SearchCondition, out string Message) { Message = string.Empty; try { //访问远程方法 string postdata = JsonUtility.SerializeObject(SearchCondition); //接收返回值 string result = HttpHelper.Post("", postdata); //接受结果的类型 dynamic obj = new { List = new List <dynamic>(), message = string.Empty }; JsonUtility.DeserializeAnonymousType <dynamic>(result, obj); ObservableCollection <UIStrategy.UserRUIDUIStrategy> list = new ObservableCollection <UIStrategy.UserRUIDUIStrategy>(); //从返回的集合,转换类型并生成新的集合 foreach (var item in obj.List) { UIStrategy.UserRUIDUIStrategy temp = new UIStrategy.UserRUIDUIStrategy(); DeepCopyUtility.SetValue <UIStrategy.UserRUIDUIStrategy>(temp, item); list.Add(temp); } Message = obj.message; return(list); } catch (Exception e) { Message = string.Format("检索失败,错误:{0}", e.Message); return(new ObservableCollection <UIStrategy.UserRUIDUIStrategy>()); } }