J'écris ma toute première application Silverlight. J'ai une grille de données avec une colonne qui a deux étiquettes, pour les étiquettes, j'utilise un IValueConverter pour formater les données de manière conditionnelle.Transmettez la valeur d'un champ à Silverlight ConverterParameter
est défini en tant que tel "Contenu" de l'étiquette:
Content="{Binding HomeScore, Converter={StaticResource fmtshs}}"
et
Content="{Binding AwayScore, Converter={StaticResource fmtshs}}"
La Convertir méthode de mon IValueConverter est tel:
Public Function Convert(
ByVal value As Object,
ByVal targetType As System.Type,
ByVal parameter As Object,
ByVal culture As System.Globalization.CultureInfo) As Object
Implements System.Windows.Data.IValueConverter.Convert
Dim score As Long = value, other As Long = parameter
Return If(score < 0, "",
If(score - other > 5, (other + 5).ToString, score.ToString)
)
End Function
Alors ce que je vouloir faire est dans le convertisseur pour HomeScore, je veux passer AwayScore à la ConverterParameter, et pour AwayScore je veux passer le HomeScore au convertisseur. Dans le convertisseur pour l'un ou l'autre score je dois être capable de connaître la valeur de l'autre score à des fins de mise en forme.
Mais je ne peux pas comprendre la syntaxe pour lier le ConverterParameter à un autre champ.
J'ai essayé ce qui suit:
Content="{Binding HomeScore, Converter={StaticResource fmtshs}, ConverterParameter=AwayScore}"
Content="{Binding HomeScore, Converter={StaticResource fmtshs}, ConverterParameter={AwayScore}}"
Content="{Binding HomeScore, Converter={StaticResource fmtshs}, ConverterParameter={Binding AwayScore}}"
Mais aucun de ceux qui semblent fonctionner. Comment puis-je passer une valeur de champ à ConverterParameter?
J'ai essayé le simple mais dans le convertisseur il me donne une chaîne de '{Binding SomeOtherProperty}'. Ai-je manqué quelque chose? :(PS. J'utilise Silverlight 3. –
Regardez MultiBind Convertisseurs http://stackoverflow.com/questions/377841/what-should-the-converter-parameter-be-for-this-binding – Rauld