Bonjour à tous,
J'essaie de respecter MVVM, mais parfois j'ai des informations qui ont été envoyé avec onpropertychanged
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ...
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:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager