2012-02-23 2 views
3

주어진 DependencyProperty이 모두 소스으로 설정된 모든 바인딩을 가져올 수 있는지 궁금합니다.DependencyProperty에 대한 모든 바인딩 얻기

나는 DependencyPropertyDescriptor.FromProperty(DependencyProperty, Type) 메서드를 통해 DependencyPropertyDescriptor 클래스를보고 있었지만, 불행히도 성공하지 못했습니다. 변경 알림에 대한 리스너 만 등록 할 수 있지만 등록 된 리스너 (내 경우에는 바인딩)를 검사 할 방법이 없습니다.

BindingOperation 클래스에서도 모든 작업이 의 대상 인 (원본이 아님)에서만 작동합니다.

등록 된 리스너의 멀티 캐스트 대리인을 만날 수 있고 호출 목록을 얻을 수 있다면 충분할 것입니다. 편집

내가 추가/후킹하려고은 ICustomTypeDescriptor를 구현하고 GetProperties를 방법을 차단하여주는 PropertyDescriptor에서의 valueChanged 방법을 제거하기로 결정 약간의 반사 마법을 사용한 후. 거기에서 변경 알림을 등록하는 대리인을 차단할 수 있습니다 ...

답변

1

글쎄,이 사실을 알고 싶습니다! 아마도 마이크로 소프트는 카운터 종속성 요구 사항 때문에 그러한 API를 제공하지 않았을 것입니다. WPF에서 GUI (대상!)는 종속성 값 변경을위한 드라이버이므로 모든 종속성 속성이 대상 GUI와 함께 올라가거나 첨부됩니다. 따라서 API는 소스보다 많이 사용됩니다 (해당 대상이 많을 수 있습니다!).

관련 문제