1

我有一个包含多个对象的 ViewModel。一种叫做价目表。Pricelist 对象包含一个集合。

我的步骤如下:

  1. 实例化一个新的 Pricelist 实例 (newPricelist)。

  2. 从 VM 填充新实例。newPricelist = ViewModel.Pricelist(也尝试过 injectFrom)

  3. 清除新实例内部的集合。newPricelist.collection.Clear();

  4. 发生这种情况时,集合也会从 ViewModel.Pricelist 中清除。

请问我该如何防止这种情况发生?

4

2 回答 2

1

它们是同一个集合。您应该分配 newPricelist 以使用新集合,而不是清除该共享集合。就像是

newPricelist.collection = new List<collectionType>();
于 2013-05-16T20:04:29.313 回答
0

您需要实例化您在 newPricelist 中引用的 ICollection(T) 对象的新实例。所以,你的代码应该更像:

newPricelist = new Pricelist();
newPricelist.collection = new List<collectionObject>(ViewModel.Pricelist.collection);

请注意,您的新集合仍将引用您在 ViewModel.Pricelist 集合中拥有的相同对象。

于 2013-05-16T19:55:48.537 回答