문제

데이터 바인딩을 유지하면서 WPF 개체를 딥 클론하는 방법에 대한 좋은 예가있는 사람이 있습니까? <시간>

표시된 답변이 첫 번째 부분입니다.

두 번째 부분은 ExpressionConverter를 만들어 직렬화 프로세스에 삽입해야한다는 것입니다.이에 대한 세부 정보는 다음과 같습니다.
http : // www.codeproject.com / KB / WPF / xamlwriterandbinding.aspx? fid= 1428301 & df= 90 & mpp= 25 & noise= 3 & sort= Position & view= Quick & select= 2801571

도움이 되었습니까?

해결책

가장 간단한 방법은 XamlWriter를 사용하여 WPF 개체를 문자열로 저장하는 것입니다.Save 메서드는 논리 트리에서 개체와 모든 자식을 직렬화합니다.이제 새 개체를 만들고 XamlReader로로드 할 수 있습니다.

예 : xaml에 개체를 작성합니다 (개체가 Grid 컨트롤이라고 가정 해 보겠습니다). 라코 디스

새 개체에로드 : 라코 디스

다른 팁

.NET 4.0에서 새로운 xaml 직렬화 스택은이 작업을 훨씬 쉽게 만듭니다. 라코 디스

여기에 훌륭한 답변이 있습니다.매우 유용합니다.나는 http://pjlcon.wordpress.com/2011/01/14/change-a-wpf-binding-from-sync-to-async-programatically/ 그러나여기에있는 정보는 인터넷에서 최고입니다!

InvalidOperationException“Binding은 사용한 후에는 변경할 수 없습니다.”를 처리하기 위해 재사용 가능한 확장 메서드를 만들었습니다.내 시나리오에서는 누군가가 작성한 일부 코드를 유지하고 있었으며 주요 DevExpress DXGrid 프레임 워크 업그레이드 후에는 더 이상 작동하지 않았습니다.다음은 내 문제를 완벽하게 해결했습니다.객체를 반환하는 코드 부분이 더 좋을 수 있으며 나중에 다시 리팩토링 할 것입니다. 라코 디스

어떻게 : 라코 디스

물론이 딥 복제는 모든 객체를 복제하며, 마을에서 가장 빠른 솔루션은 아니지만 유지 관리가 가장 적습니다 ... :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top