我在嘗試從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方法。對不起,我應該把計數保存在一個變量中。 –