Questa è una situazione che si presenta spesso:Qual è il modo migliore per avviare un'animazione quando cambia un valore associato?
Nella vista, si dispone di un controllo associato a una proprietà ViewModel (supportata da un valore INotifyPropertyChanged). Ad esempio:
<TextBlock Text="{Binding Path=Subtotal}"/>
Quando la proprietà cambia, è necessario attirare l'attenzione dell'utente con alcune animazioni creative. Come posso utilizzare il fatto che la vista è già collegata alla notifica ed evitare di creare gran parte del codice aggiuntivo (o almeno crearlo una volta e riutilizzarlo). I trigger di dati sono probabilmente la scelta migliore, ma non so come farli sparare su qualsiasi variazione di valore rispetto ad un valore specifico.
le seguenti opzioni vengono in mente:
- generare un evento aggiuntivo nel ViewModel, iscriviti nella Vista code-behind.
- creare un datatrigger associato alla proprietà indicata utilizzando un convertitore che restituisce true se il valore sta cambiando.
- creare un datatrigger associato a una nuova proprietà booleana sul ViewModel che viene utilizzato per "segnalare" la modifica.
- crea un comportamento collegato al controllo che sottoscrive la modifica della proprietà di dipendenza del controllo e avvia l'animazione.
Quale preferisci? Ho perso qualche opzione?
P.S. Sarebbe bello (ma non critico) se la soluzione fornisse la possibilità di avviare prima l'animazione e riflettere il cambiamento di valore quando è terminata.
Da dove proviene ''? Immagino che venga spedito con Blend. È disponibile per noi utenti non Blend? Voglio ottenere la stessa cosa nel mio codice, anche se spero che esista una soluzione meno verbosa in quanto ho molte istanze che richiedono questo. Forse è possibile tramite uno stile ... –