Jest to sytuacja, która często pojawia się:Jaki jest najlepszy sposób rozpoczęcia animacji po zmianie wartości wiązania?
W widoku masz kontrolę powiązaną z właściwością ViewModel (wspieraną przez INotifyPropertyChanged). Na przykład:
<TextBlock Text="{Binding Path=Subtotal}"/>
Po zmianie właściwości należy zwrócić uwagę użytkownika na pewne animacje. Jak mogę wykorzystać fakt, że widok jest już podłączony do powiadomienia i uniknąć tworzenia znacznej ilości dodatkowego kodu (lub przynajmniej utworzyć go raz i ponownie użyć). Wyzwalacze danych są prawdopodobnie najlepszym wyborem, ale nie wiem, jak je wywołać w przypadku jakiejkolwiek zmiany wartości w stosunku do konkretnej wartości.
następujące opcje przychodzą na myśl:
- podbicie dodatkowym wydarzeniem w ViewModel, zapisz w widoku kodu źródłowego.
- utworzyć datatrigger związany z właściwością wspomnianą za pomocą konwertera, który zwróci wartość true, jeśli wartość się zmienia.
- utworzyć datatrigger związany z nową właściwością boolean w ViewModel, który jest używany do "sygnalizowania" zmiany.
- Utwórz zachowanie dołączone do formantu, który zasubskrybuje zmianę właściwości zależności obiektu sterującego i rozpocznie animację.
Którego lubisz/używasz? Czy przegapiłem jakieś opcje?
P.S. Byłoby miło (ale nie krytycznie), gdyby rozwiązanie dało możliwość rozpoczęcia animacji jako pierwszej i odzwierciedlenia zmiany wartości po jej zakończeniu.
Skąd pochodzi ""? Zgaduję, że jest dostarczany z Blendem. Czy jest on dostępny dla użytkowników, którzy nie są w stanie mieszać? Chcę osiągnąć to samo w moim kodzie, ale mam nadzieję, że istnieje rozwiązanie, które jest mniej szczegółowe, ponieważ mam wiele takich przypadków, które tego wymagają. Może to możliwe dzięki Style ... –