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}}" />
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!