2016-09-14 2 views
-1

J'essaie de formater des parties du texte quelque chose comme 'ceci est test'. où les parties de la chaîne sont en gras et en italique. Je reçois la chaîne comme une collection de mots {mot1, mot2, mot3 ......}La propriété textuelle de la zone de texte n'est pas définie lorsque du texte est ajouté en utilisant des lignes

<Button Command="{Binding MyCommand}" CommandParameter="{Binding Text, ElementName=MyTextBlock}"> 
<TextBlock src:TextHelper.FormattedText="{Binding ListOfWords}" Name="MyTextBlock"/> 

Et dans l'aide je suis analyse par la collecte de mots et je suis en train de la en ligne avec la mise en forme qui fonctionne bien à dire que je vois le texte formaté correctement sur l'interface utilisateur

textBlock.Inlines.Add(span); 

Mais lorsque le bouton est cliqué la première fois que je ne reçois aucune valeur non pas parce que la propriété de texte du bloc de texte est vide.

je suis tombé sur une question similaire

Read C# Textblock Text Property filled using Inlines

Mais je ne peux pas utiliser la méthode chargée. Y at-il un moyen d'obtenir la valeur du texte et passer à la commande?

Répondre

0

utiliser une référence comme suit

CommandParameter="{Binding Text, Source={x:Reference MyTextBlock}}" 

ou (passer toute TextBlock)

CommandParameter="{Binding Source={x:Reference MyTextBlock}}" 

En outre, vous pouvez également faire le async de commande et d'attendre un certain nombre de Task.Delay jusqu'à la propriété est remplie.