我有一个包含填充对象和rx对象的视图模型。在下面显示的代码上方,我有一个填充列表和一个rx列表。这些都正确填写。
下面,我将viewmodel实例中的fill和rx对象设置为每个列表的第一个元素。然后我将我的viewmodel实例添加到List of MyViewModels并重新启动循环。但是,在重新启动循环之前,我删除了填充列表中的第一个元素和rxs列表,以便在下一个循环中我的viewmodel对象将是不同的。
问题是,当我调试时,在循环的每次迭代中,在List of MyViewModels中,每个viewmodel的对象被设置为等于填充列表和rx列表中的新值。
这必须是如此简单以至于我可以忽视。提前谢谢。
for (int i = 0; i < f; i++)
{
_myViewModel.fill = FillList.ElementAt(0);
_myViewModel.rx = RxList.ElementAt(0);
MyList.Add(_myViewModel);
FillList.RemoveAt(0);
RxList.RemoveAt(0);
}
return View(MyList);
答案 0 :(得分:2)
对我来说,好像你在for循环之外创建了_myViewModel
,所以_myViewModel
是一个对象。
您不是在_myViewModel
列表中添加克隆或MyList
的内容,而是对其进行引用。因此,下次循环通过并更改_myViewModel
时,列表中已有的项也会更改。
您需要在循环
中创建一个新的myViewModel对象答案 1 :(得分:0)
你试过吗。
for(int i=0; i<f; i++)
{
_myVieModel = new MyVieModel();
_myViewModel.fill = FillList[i]
_myViewModel.rx = RxList[i]
MyList.Add(_myViewModel);
}