Je veux lier une propriété en lecture seule d'un contrôle à mon modèle de vue afin que la valeur soit disponible dans le modèle de vue.Comment lier une propriété de contrôle WPF en lecture seule (par exemple ActualWidth) afin que sa valeur soit accessible dans le modèle de vue?
Quelle est la meilleure façon de procéder?
Par exemple, je voudrais lier ActualWidth
à une propriété dans mon modèle de vue. La valeur de largeur est générée par WPF à l'aide de sa logique de présentation. Je ne peux donc pas générer cette valeur dans mon modèle de vue et la pousser vers la propriété de contrôle, ce qui serait normalement le cas. Au lieu de cela, j'ai besoin que WPF génère la valeur et la pousse vers le modèle de vue.
Je voudrais simplement utiliser Mode=OneWayToSource
, mais cela ne fonctionne pas pour les propriétés en lecture seule:
<Border
...
ActualWidth="{Binding MyDataModelWidth, Mode=OneWayToSource}"
>
... child controls ...
</Border>
La façon dont je le fais est actuellement gérer SizeChanged
pour la frontière et le code-behind bouchons du valeur dans le modèle de vue, mais cela ne semble pas tout à fait raison.
Est-ce que quelqu'un a déjà résolu ce problème?
MISE À JOUR: Ma question est en fait un double de celui-ci: Pushing read-only GUI properties back into ViewModel
génial. les deux à peu près en même temps, avec le même lien. haha! – Nawaz
Le deuxième lien est une bonne solution réutilisable dont la base est ce que vous faites (en utilisant l'événement SizeChanged). – sowee15
Pourriez-vous s'il vous plaît inclure l'essentiel de la réponse, une réponse sur StackOverflow ne devrait pas seulement contenir des liens ... –