Czy istnieje sposób wykrywania, kiedy powiązanie zostanie zmienione? Nie pytam o wartość, mam na myśli samo wyrażenie wiążące.Czy mogę wykryć wiążące zmiany w Silverlight?
5
A
Odpowiedz
5
Jedyny sposób, w jaki mogę to sobie wyobrazić, to śledzenie BindingExpression
za każdym razem, gdy zmieni się właściwość. Wywołanie zwrotne właściwości powinno być uruchamiane po zmianie powiązania. W ramach połączenia zwrotnego użyj numeru GetBindingExpression
, aby pobrać i zapisać odniesienie do bieżącego numeru BindingExpression
.
Przy każdym wywołaniu wywołania zwrotnego sprawdź, czy bieżący stan odwołania jest taki sam, który został zwrócony przez GetBindingExpression
, jeśli nie zostało zmienione powiązanie.
Działa to tylko na pochodnej FrameworkElement
, ale nie mogę wymyślić sposób na to zrobić na UIElement
lub surowego DependencyObject
.