대부분의 경우 "새 패널에 추가하기 전에 이전 부모에서 요소를 제거합니다"라고 말합니다. 나는 이것이 다른 상황에서 이미 여러 번 적용했으며,이 특별한 경우에는 효과가없는 이유를 설명 할 수 없다는 것을 알고 있습니다.Panel에 UIElement를 추가하면 InvalidOperationException이 발생합니다. "다른 요소의 이미 logicial 하위 요소입니다."
여기 내 디버그 세션의 추출물이며, 예외가 일어난 곳 :
당신이 볼 수 있듯이, 내 요소의 부모는 아이가없는! 조언이 있으십니까? 이 문제를 어떻게 진단 할 수 있습니까? 감사 !
편집 : 요소가 이전에 XPS를 생성하는 데 사용 된 패널에 추가되었으며 생성이 완료된 후 제거되었습니다. ==> 이것은 "AddNewSpecialElement 메소드"에 들어가기 전에 끝났지 만, 위의 문제를 변경해서는 안됩니다.
디버그 세션을 볼 수 없습니까? – Whyrusleeping
디버그 세션은 코드 및 고정 변수가 포함 된 이미지입니다. 여기에 있습니다 : http://i.stack.imgur.com/Ac7xJ.png – JYL
WPF에는 두 개의 트리가 있습니다 : 논리적 (코드) 트리와 비주얼 (UI) 트리. 비주얼 트리에서 객체를 제거하는 것처럼 들리지만 논리적 트리에서는 그렇지 않습니다. 부모에게서 어떻게 원소를 제거하고 있습니까? – Rachel