【发布时间】:2015-10-15 09:55:31
【问题描述】:
我在尝试从 Children Collection 中删除元素时遇到了奇怪的行为。如您所见,第一次执行 remove 方法时,计数为 8(未更改),但如果我进入 remove 方法,元素将被删除。
发生了什么事? (希望图片中包含的代码足以了解它,如果没有,请询问更多详细信息)
编辑:我已经根据答案中给出的建议稍微更改了界面,但问题仍然存在。这也会导致实现上的一些变化(注意图像上的红色罢工,对绘画技巧感到抱歉)。
public interface ITreeContentItem
{
string Name { get; set; }
int Id { get; set; }
int Level { get; }
ITreeContentItem Parent { get; set; }
IEnumerable<ITreeContentItem> Children { get; }
bool ChangeParent(ITreeContentItem parent);
Thickness Border { get; }
}
【问题讨论】:
-
请考虑添加visual-studio 标记,因为此问题可能特定于 Visual Studio。
-
Offtopic,不知道我不喜欢在评估 col.Count 的 for 循环中看到删除:) 顺便说一句,您显示的 col Count 是在删除项目之后,是你确定这不是你要检查的下一次迭代吗?
-
@Icepickle 我确定是因为我强制调试器返回执行删除方法。抱歉,我应该将计数保存在变量 1st 上。
-
能否提供ITreeContentItem代码?
-
具体我们需要知道接口和对象中的子类型是什么
标签: c# .net wpf visual-studio