———21.06.01
오랜만에 봤는데 뭔내용인지 이해가 안가서;;; 다시 작성....
지정한 요소란 현재 내가 조작중인 Control.
컨트롤, 컨트롤이 담긴 변수를 재사용하려고 할 때 발생하는 문제
“지정한 요소”
ㄴParent 속성: 어떤 Control이 있다.(null 이 아니다)
ㄴㄴChild 속성: 정상적일 경우 “지정한 요소”가 할당돼야하지만 이미 다른 Control이 있다.
Solution:
(지정한요소.Parent as Parent의Type).Children.Clear()
*Parent의 Type은 모를 경우 조사식 창에 찍어보길
ex)
menu.Items.Insert(1, MenuItem); //error
(MenuItem.Parent as ContextMenu).Item.Clear(); // error 앞줄에 호출
———
WPF 지정한 요소가 이미 다른 요소의 논리자식입니다. 먼저 이 연결을 끊으십시오.
xaml child clear
remove child element
xaml removing all grid children
본 문제는 .add(___)하려는 컨포넌트가 이미 다른 컴포넌트에 추가되어있어 발생하는 문제.
다른 컴포넌트에서 해제 후 추가하라는 의미
문제는 이미
부모컴포넌트.child.clear();
를 통해 clear 했음에도 불구하고 제대로 연결이 끊어지지 않는 게 문제
심지어 지정컴포넌트의 Parent는 읽기 전용 속성이므로 별도의 수정도 불가능함.
이럴 땐 강제로 부모의 자식속성에 접근해서 초기화해주면 된다.
(지정컴포넌트.Parent) as Paenl).Children.Clear()
'C# > WPF' 카테고리의 다른 글
C# WPF 지정된 Visual이 이미 다른 Visual의 자식이거나 CompositionTarget의 루트입니다 (0) | 2021.10.25 |
---|---|
C# Thread Dispatcher (Cross Thread 방지) (0) | 2021.07.21 |
WPF 마우스 이벤트 (0) | 2020.09.03 |