我在尝试从Children Collection中移除一个元素时有一种奇怪的行为。正如你第一次看到remove方法被执行的时候count是8(没有改变),但是如果我进入remove方法,元素被移除。对observablecollection的Stange移除行为
这是怎么回事? (希望包含在图像中的代码足以得到关于它的线索,如果不是,请询问更多细节)
编辑:我已经根据答案中给出的建议稍微改变了一个接口,但是问题仍在。这也会导致实现上的一些变化(介意图像上的红色罢工,对于绘画技能感到抱歉)。
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; }
}
请考虑添加[tag:visual-studio]标签,因为这个问题可能是特定于Visual Studio的。 –
Offtopic,不知道我会不喜欢这么多看到删除内循环col.Count评估:)顺便说一句,你显示的列数是在项目被删除后,你确定这不是你正在检查下一个迭代? – Icepickle
@Ippickle我相信因为我强制调试器回去执行remove方法。对不起,我应该把计数保存在一个变量中。 –