Normalement, lorsque vous souhaitez mettre à jour un contrôle de base de données, utilisez l'événement "PropertyChanged" pour signaler à l'interface que les données ont changé en arrière-plan.Liaison de mise à jour WPF lorsqu'elle est liée directement à DataContext avec convertisseur
Par exemple, vous pourriez avoir un TextBlock qui est lié à la datacontext avec une propriété "DisplayText"
<TextBlock Text="{Binding Path=DisplayText}"/>
A partir de là, si le DataContext déclenche l'événement PropertyChanged avec PropertyName "DisplayText", puis Le texte de ce bloc de texte doit être mis à jour (en supposant que vous n'avez pas modifié le mode de la liaison).
Cependant, j'ai une liaison plus complexe qui utilise de nombreuses propriétés hors du contexte de données pour déterminer l'apparence finale du contrôle. Pour ce faire, je me lie directement au datacontext et utilise un convertisseur. Dans ce cas, je travaille avec une source d'image.
<Image Source="{Binding Converter={StaticResource ImageConverter}}"/>
Comme vous pouvez le voir, j'utiliser un {} La liaison sans chemin pour lier directement au datacontext, et j'utiliser un ImageConverter pour sélectionner l'image que je suis à la recherche. Mais maintenant je n'ai aucun moyen (que je connaisse) de dire cette liaison à mettre à jour. J'ai essayé d'élever l'événement propertychanged avec "." comme le propertyname, qui n'a pas fonctionné.
Est-ce possible? Dois-je inclure la logique de conversion dans une propriété à laquelle la liaison peut être attachée ou y a-t-il un moyen de dire à la liaison de se rafraîchir (sans rafraîchir explicitement la liaison)?
Toute aide serait grandement appréciée. Merci! -Adam
MERCI! J'étais folle à la recherche de cela et était sur le point de le demander quand il est apparu sur mes suggestions – HDD