J'apprends WPF avec MVVM et pour un starter, j'ai regardé la vidéo de Jason Dolinger sur MVVM. Dans ce qu'il a mentionné, l'un des avantages de l'utilisation de MVVM avec WPF est la liaison de données bidirectionnelle. Ma question est ce que veut-il dire par liaison de données bidirectionnelle? Est-ce la caractéristique de la capacité à 1) lier les données des contrôles (View) aux propriétés dans VM et 2) tout changement dans les collections ou les propriétés sont reflétés dans la vue? Si je me trompe, quelqu'un peut-il m'expliquer en détail ce que c'est et quels sont ses avantages? Cela peut être un doute très simple, mais je suis très nouveau à WPF et c'est la terminologie et l'éloignement de WinForms maintenant.Qu'est-ce que la liaison de données bidirectionnelle dans WPF?
Répondre
Vous n'avez pas tort. La liaison de données bidirectionnelle a exactement ce sens.
Vous avez la vue connectée avec son ViewModel, de sorte que chaque modification que vous effectuez dans l'un d'eux est reflétée dans l'autre.
Pour obtenir ce type de comportement, vous devez implémenter l'interface INotifyPropertyChange dans votre ViewModel ou utiliser les propriétés de dépendance, au lieu des propriétés CLR normales.
Vous pouvez également utiliser d'autres types de liaison de données, comme un moyen ou un chemin vers la source. Le défaut est cependant bidirectionnel.
Espérons que cela aide. Regards
L'idée générale est que non seulement toute modification du DataContext reflétée dans l'interface utilisateur, mais aussi les modifications de l'interface utilisateur sont repoussées dans le DataContext. Vous avez raison :)
Bon d'entendre que je suis presque raison. Une autre question est-ce que cela signifie que M-V-VM est conçu pour être implémenté sans WPF? Comme, WPF et M-V-VM sont couplés dur? Je pose cette question parce que, jusqu'à présent, je n'ai pas trouvé d'implémentation pour M-V-VM sans WPF/SL. – blntechie
En fait, le type de liaison par défaut dépend de la propriété de dépendance. Et en fait, la valeur par défaut pour les propriétés de dépendance est OneWay, mais certains contrôles WPF l'ont remplacé par TwoWay pour certaines de leurs propriétés (comme TextBox.Text par exemple). –
Le modèle MVVM est vraiment une excroissance de développeurs apprenant à utiliser efficacement la technologie de liaison de données remarquablement robuste et omniprésente de WPF, il est donc peu probable que vous la rencontriez dans un autre contexte. –