我有一个名为Grid
的{{1}}项列表。
我有gridCache
名为TabItem
。
这行代码:
ti
...正在更新列表中每个gridCache.Last().Name = ti.Name;
项的Name
属性。它应该只是更新最后一项Grid
属性。
为什么要这样做?
也许我在这里玩橡胶,但我在调试时已经跟着它通过了一个断点,并且在调用这一行时它们都会同时更新。
编辑:我想基本上制作副本'Name
被修改为存储它们供以后使用。我们的想法是使用它来缓存某些SQL调用的数据。这是我正在尝试的内容:
flyGrid
在此次重复3或4次后,列表中每个项目的 //some stuff that defines flyGrid
Grid cacheGrid = new Grid();
cacheGrid = flyGrid;
cacheGrid.Name = ti.Name;
gridCache.Add(cacheGrid);
属性始终是提供的姓氏。
每次重复此代码时,如何制作flyGrid的副本,它是自己的实例?
解决方案编辑 : 我最终以完全不同的方式解决了根问题。我们的想法是获取缓存的ReportParameterInfoCollection项目,以避免不断与数据库交谈。
我最终为具有两个属性的对象创建了一个简单类:一个随机字母串和一个ReportParameterInfoCollection项列表。
这允许我在打开选项卡时填充此列表,并为这些选项卡分配与存储在此对象列表中的参数信息相匹配的唯一ID。
我没有真正解决这个问题,所以我决定不发布这个作为答案。
答案 0 :(得分:1)
如果每个Grid
都是同一个实例,那就会发生。
确保在填充列表时实际创建多个实例。