使用内联添加文本时未设置文本框的文本属性

时间:2016-09-14 00:27:42

标签: c# wpf mvvm textblock

我正在尝试格式化部分内容,例如“这是 测试 ”。字符串的部分是粗体和斜体。我把字符串作为单词{word1,word2,word3 ......}

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

在帮助器中,我正在解析单词集合,我正在设置内联格式正常工作,即我在UI上看到格式正确的文本

textBlock.Inlines.Add(span);

但是当第一次点击按钮时我没有得到任何值,因为文本块的text属性为空。

我遇到了类似的问题

Read C# Textblock Text Property filled using Inlines

但是我不能使用加载方法。有没有办法获取文本的值并传递给命令?

1 个答案:

答案 0 :(得分:0)

使用以下参考

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

或(传递整个TextBlock)

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

此外,您还可以使Command async并等待一定数量的Task.Delay,直到属性被填充。