[WPF MVVM] Forcer le rafraichissement d'une image
Bonjour à tous,
J'essaie de respecter MVVM, mais parfois j'ai des informations qui ont été envoyé avec onpropertychanged
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Public Class VM_Base
Implements INotifyPropertyChanged
Public Event PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
Public Sub OnPropertyChanged(Optional ByVal propname As String = "", <System.Runtime.CompilerServices.CallerMemberName> Optional memberName As String = Nothing)
If propname = "" Then
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(memberName))
Else
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propname))
End If
End Sub
... |
Dans mon titre j'indique une image par que c'est ce que me préoccupe dans le cas présent, mais cela peut le faire sur tout.
Mon image représente un voyant et avant de télécharger des données par le port COM, je change cette image.
Seulement l'image n'est pas immédiatement changer.
En VB6 on avait DoEvents, pour indiquer au programme de traiter les demandes en attente comme la mise a jour de l'affichage.
DoEvent n'existe pas, apparemment en WPF, mais une fonction permet de faire quelque chose de semblable:
Code:
1 2 3 4 5 6
|
Public Sub DoEvents()
On Error Resume Next
If Application.Current IsNot Nothing Then Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, New ThreadStart(Sub()
End Sub))
End Sub |
Seulement cette fonction m'indique pas spécialement de mettre à jour des taches annexe comme l'affichage, mais un timer en attente par exemple se lancera aussi. Ce qui dans mon cas me ralentit pas mal le traitement.
Ma question:
Y a t'il un moyen de forcer la mise à jour uniquement de l'affichage, afin que dès que je lui est fait un OnPropertyChanged il rafraichie uniquement cette variable.
Merci