나는 tabcontrol의 깊은 복사본을 만들어야합니다.TabControl 딥 복사
큰 그림은 다음과 같습니다. 저는 300 줄의 XAML 코드 TabControl과 함께 8 개의 탭이있는 프로젝트가 있습니다. 나 또한 다른 항목 TreeView 있습니다.
해당 목록의 항목을 선택하면 해당 목록과 연결된 TabControl이 표시됩니다. 문제는 이제 요소를 추가 할 때 원본 TabControl의 전체 복사본을 만들어 새 요소를 새 요소에 연결하려는 것입니다. 물론 새 요소에서 내용을 지울 것입니다. 얕은 복사본은 메모리의 동일한 위치를 가리키기 때문에 작동하지 않으므로 "=", IClonable은 이동하지 않습니다. 그리고 좌절하는 부분은 TabControl이 직렬화 가능하지 않기 때문에 직렬 복사로 전체 복사본을 사용할 수 없다는 것입니다. 그리고 TabControl은 XAML에서 300 줄이고 코드에서 600 줄이므로 공간과 시간이 낭비되므로 직렬화 할 수있는 사용자 지정 TabControl을 만들 수 없다는 것입니다.
나는 이것을 2 일 동안 검색했지만 아무 것도 찾지 못했습니다. 모든 유형의 TabControl을 복사 할 수있는 일반 용도의 딥 복사 (Deep Copy) 메서드를 찾고 있기 때문에 코드를 표시 할 필요가 없습니다.
정말 "공간"300 줄의 코드가 얼마나 많이 차지하는지 걱정하지 않아도됩니다. 응용 프로그램의 크기와 크게 다르지 않습니다. 또한, 귀하의 질문에 서식을 추가하십시오 .. 예를 들어, 새로운 단락 두 개의 "엔터"프레스 (캐리지 리턴)이 필요합니다 – Sayse
'Object.MemberwiseClone'을 사용하는 방법에 대해? [MSDN] (http://msdn.microsoft.com/en-us/library/system.object.memberwiseclone.aspx)에는이 기능을 사용하여 얕은 복사본과 전체 복사본 (딥 복사본 기본적으로 객체에 대한 MemberwiseClone을 수행 한 다음 중첩 된 참조 유형의 복제 된 객체에 새 인스턴스를 만듭니다. – Tim
Tim 나는 이것을 시도한 것 같아요. (여기서 물어보기 전에 10 가지 방법을 시도했지만) 다시 시도 할 것입니다. –