2011-05-07 2 views
3

속성을 설정하기 위해 코드를 많이 사용하는 Silverlight 프로젝트를 수정하려고합니다. 이것은 몇 년 전에 만들어졌으며 WinForms 프로젝트에서 다소 포팅되었습니다.Silverlight : 속성을 설정하면 데이터 바인딩이 직접 제거됩니까?

내가 알아 차린 문제는 속성에 대한 데이터 바인딩을 설정할 때이 속성이 Visibility이면 코드에서 직접 설정되어 있으면 데이터 바인딩이 제거된다는 것입니다. 이 경우를 확인하기 위해 PropertyChanged 이벤트에 중단 점을 설정하기도합니다.

나는 꽤 많은 WPF 개발을 수행했으며 이것을 전혀 알지 못했다. 이게 정상인가요? 나는 그것을 놓쳤습니다. 그렇지 않습니다.

답변

7

나에게 아주 정상적인 것 같습니다.

바인딩의 개념은 원본 개체의 속성에 대상 속성의 값이 인 경우입니다. 바인딩되는 동안 대상 속성은 항상 source 속성의 값을 반영합니다. 타겟 속성에 자신의 값을 할당하자마자 타겟 속성은 소스의 값을 더 이상 반영하지 않으므로 둘 사이의 바인딩이 깨졌습니다. 따라서 자신의 값을 설정하면 바인딩이 제거됩니다.

바인딩의 ModeTwoWay으로 설정하면 Silverlight는 원본 개체의 속성에 새 값을 할당하고 대상 속성이 원본 속성의 값을 계속 반영하기 때문에 바인딩을 유지 관리합니다.

+0

당신 말이 맞습니다. 나는 전에 그것에 대해 생각 해보지 않았습니다. 제 바인딩이 왜 작동하지 않는지 알아 내려고 애쓰는 데 심각한 문제가있었습니다. – Telavian