我们说我有一个空文本块:
textblock1.Text = "";
然后我只用这两个语句把Inlines内容放在其中:
textblock1.Inlines.Add(new Run() { Text = "A. ", Foreground = Brushes.Red });
textblock1.Inlines.Add(new Run() { Text = responses.Current.Value, Foreground = Brushes.Black});
令人惊奇的是,我可以在窗口中正确显示内容,但Textblock的Text属性一直是空的!这会导致问题,因为我需要将此Textblock的值传递给其他Textblock。
我真的无法弄清楚的另一件事是,当我第二次调用我的函数时,textblock1.Text属性正在正确更新!每次通话都会正确更新,但第一次!我在msdn上花了好几个小时,但我真的很困惑。此外,我可以在网站上看到:
Text属性返回一个值(InlineCollection中所有Run元素的附加文本)。但是,返回的值不包括已应用于Run元素的任何格式。
我非常仔细地检查了我的代码并进行了调试,看看是否有其他地方我操纵这些属性,但我还没找到。如果有人有任何想法,对我来说这件事变得毫无意义......
答案 0 :(得分:1)
只是详细说明我的意见,以提供一些意义,
加载需要包含元素的逻辑树是完整的
这对我们有所帮助,因为这里的绑定引用了另一个TextBlock
元素。绑定还取决于DataContext
以及与特定Binding
相关的其他一些因素,但通常它们会在UI加载后得到充分的原因进行评估。
因此,一旦用户界面加载,就会设置来源Text
TextBlock
导致所有内容正常运行,因为此时Binding
处于有效状态。