下面的代码做了一个简单的事情。操作 API 的原始数据并将其绑定到视图模型的属性。
我从 Web 服务获取数据并将其保存到名为 calljsonObject 的对象中。这是原始数据。然后我做一个 foreach 循环从原始数据中选择选定的数据,并将其保存到一个名为 tmpList 的对象中,并在最后一行将 tmpList 绑定到名为 docList 的视图模型属性
SingleBoardListRawData calljsonObject = JsonConvert.DeserializeObject<SingleBoardListRawData>(callbackjsonstring);
ObservableCollection<SinglePostViewModel> tmpList = new ObservableCollection<SinglePostViewModel>();
SinglePostViewModel tmpPost = new SinglePostViewModel();
foreach (List<object> item in calljsonObject.data)
{
tmpPost.doc_id = (long)item[0];
tmpPost.doc_title = (string)item[1];
tmpPost.doc_author = (string)item[2];
tmpPost.repliesCount = (long)item[4];
tmpPost.doc_post_date = DateTime.Parse((string)item[5]);
tmpPost.OnTop = (long)item[6];
tmpPost.CoolPost = (long)item[7];
tmpPost.doc_update_date = DateTime.Parse((string)item[9]);
tmpPost.PicInDoc = (long)item[10];
tmpPost.reply_user_name = (string)item[11];
tmpPost.doc_brief = (string)item[13];
tmpList.Add(tmpPost);
}
this.docList = tmpList;
但结果是 tmpList 充满了相同的数据,这是最后一次 foreach 操作的结果。但我认为我已经重新分配了 tmpPost 值,似乎每个 Add 方法都会发生前一个。
我不想每次执行 foreach 循环时都新建一个对象,我认为这会花费很多,
我的问题是: 1. 为什么?2、如何解决?