Comment puis-je lier une chaîne de caractères à double dans WPF?
Je veux établir une liaison. Le problème est que la cible est de type string, mais la source est de type double.
Dans le code suivant VersionNumber est de type double. Lorsque je l'exécute, le textblock est vide, sans jeter des exceptions.
Comment puis-je mettre cette liaison?
<Style TargetType="{x:Type MyControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type MyControl}">
<TextBlock Text="{TemplateBinding Property=VersionNumber}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Est-il possible de la
VersionNumber
de la propriété vous êtes à la liaison n'est pas un double, ce qui pourrait expliquer pourquoi vous n'êtes pas en voyant le comportement de liaison-vous vous attendre?OriginalL'auteur | 2009-05-10
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un convertisseur:
Maintenant, vous pouvez l'utiliser comme ceci:
C'est une méthode générique qui de cource fonctionne sans SP1.
OriginalL'auteur CSharper
Il y a une petite différence dans les exemples.
Liaison double à la propriété Text fonctionne très bien si vous utilisez un Texblock directement dans une Fenêtre ou d'un autre contrôle, puisqu'il sera par défaut de la méthode ToString (), MAIS cela ne fonctionne pas si vous essayez de l'utiliser dans un ControlTemplate.
Alors vous avez besoin d'un Convertisseur comme il a été suggéré dans le post.
OriginalL'auteur Göran
Vous n'avez pas besoin d'un ValueConverter. Double Chaîne de cibles fonctionnent tout aussi bien. En règle générale, la Liaison appeler ToString() comme un dernier recours.
Voici un exemple:
Le problème est probablement que votre source de Liaison n'est pas ce que vous pensez qu'elle est.
Comme une règle de liaison des échecs dans WPF ne pas lever des exceptions. Ils ne journal de leurs échecs. Voir Comment puis-je debug WPF liaisons?
Moheb, Essayez l'exemple simple. Double chaîne est très commun et se fait tout le temps
OriginalL'auteur Scott Weinstein