2010-11-14 3 views
0

Pourquoi la plupart des exemples de propriétés de liaison de données MVVM vérifient-ils si la valeur actuelle est égale à la valeur précédente.Liaison de données MVVM Property

private string name; 
public string Name 
{ 
    set 
    { 
    if(this.name != value) <- why is this check needed. 
    {...} 
    } 
} 

merci!

Répondre

2

Dans MVVM, un accesseur de propriété déclenche la mise à jour de l'interface utilisateur suite à une modification de propriété. L'ajout de cette vérification empêche l'actualisation inopinée de l'interface utilisateur (et éventuellement son scintillement).

+0

Serait-ce votre propre code appelant le setter deux fois ou quelque chose à voir avec la liaison et la vue? – dnndeveloper

+0

Je n'ai jamais remarqué que la liaison provoquait trop de mises à jour, je dirais que la plupart du temps ce problème se produit à cause de votre propre code. Cette vérification de la «valeur réellement changée» n'a rien de nouveau cependant, à l'époque de Delphes, c'était une pratique courante aussi ... –

0

Dans le cas d'une liaison "TwoWay", lors de la modification de la valeur dans le code XAML, la valeur dans la propriété bound du côté ViewModel ne doit pas renvoyer la même valeur. D'un autre côté, si la valeur (ViewModel bind side) n'est pas modifiée, il n'est pas nécessaire de lancer l'événement "RaiseChangedProperty" dans la vue.

Questions connexes