Wcześniej pisałem o zaletach jakie niesie z sobą korzystanie z Dependency Properties (DP). Wydaje mi się, że zbyt mało opisałem jeden z ciekawszych mechanizmów a mianowicie Value Coercion.
Mechanizm ten sprawia, że związane ze sobą DP są poprawne względem siebie. O co chodzi w stwierdzeniu "względem siebie". Otóż najprościej przedstawić całą sprawę za pomocą kontrolki Slider. Kontrolka ta posiada właściwości Min i Max określające minimalną i maksymalną wartość możliwą do ustawienia. W naszym przypadku wartość Max zawsze powinna być większa bądź równa Min. Nie może dojść do sytuacji kiedy Max jest mniejszy od Min. Właśnie tego pilnuje wspomniany w tytule mechanizm. Tak więc w momencie, kiedy próbujemy ustawić wartość Max mniejszą od Min funkcja coercion ustawia wartość Max równą Min. Za pomocą narzędzia Reflecotr możemy podejrzeć w jaki sposób zostało to osiągnięte przez Microsoft:
Natomiast wywołanie samych funkcji coercion ma się następująco:
Oczywiście sprawdzenia także wymaga sama właściwość Value i jak można łatwo się domyślić musi ona być w przedziale Min i Max.
Proste, łatwe i przyjemne - a jak może ułatwić życie :)
Brak komentarzy:
Prześlij komentarz