Maison > développement back-end > C++ > Pourquoi mon WPF DependencyProperty Binding ne met-il pas à jour le ViewModel?

Pourquoi mon WPF DependencyProperty Binding ne met-il pas à jour le ViewModel?

Mary-Kate Olsen
Libérer: 2025-02-01 17:26:09
original
1018 Les gens l'ont consulté

Why Doesn't My WPF DependencyProperty Binding Update the ViewModel?

Problème avec DependencyProperty Binding

Cette question aborde un problème rencontré lors de l'implémentation d'un contrôle de navigateur de fichiers personnalisé dans WPF. Le contrôle dispose d'une zone de texte liée à une dépendance de dépendance nommée "SelectedFile" et d'un bouton "Parcourir" qui met à jour la valeur de zone de texte en cliquant.

Malgré la mise à jour correcte de la zone de texte, la propriété du modèle de vue correspondante "SelectedFile" n'est resté pas affecté. L'exception a été lancée lorsque le mode de liaison a été défini sur "Twoway".

Résolution:

La cause profonde du problème était de définir de manière incorrecte le DataConText de l'UserControl à lui-même dans son constructeur. Cette action a perturbé les liaisons basées sur les données.

Pour rectifier cela, la liaison dans le XAML UserControl doit être modifiée comme suit:

<TextBox Text="{Binding SelectedFile, RelativeSource={RelativeSource AncestorType=UserControl}}" />
Copier après la connexion

Cette modification établit une relation de liaison entre "fichier sélectionné" dans dans L'UserControl et une propriété du même nom dans le modèle de vue. Le mécanisme d'hérédité DataConText est utilisé pour propager l'instance de modèle de vue appropriée.

Lorsque le XAML modifié est utilisé, la propriété "SelectedFile" du modèle de vue est liée et mise à jour en conséquence lorsque l'utilisateur interagit avec le navigateur de fichiers contrôle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal