代码之家  ›  专栏  ›  技术社区  ›  Nordes

Silverlight 4 RichTextBox使用DataContext绑定数据

  •  2
  • Nordes  · 技术社区  · 16 年前

    我正在使用Silverlight4并尝试将我的测试应用程序设置为多语言,但是当我到达“richtextbox”控件时遇到了一些问题。我可以通过返回代码(c)来正确绑定它,但是在尝试使用“dataContext”属性时,我根本无法加载它。

    我创建了一个格式转换器,它返回一个用于测试的块(段落)和我的代码,其中我的richtextbox如下所示:

       <RichTextBox x:Name="rtaTest" BorderThickness="0" IsReadOnly="True" UseLayoutRounding="True" 
    DataContext="{Binding Source={StaticResource Localization}, Path=Home.MainContent, Converter={StaticResource ParagraphFormatConverter}}">
        </RichTextBox>
    

    我想知道是否有一种方法可以从XAML绑定RichTextBox。

    4 回复  |  直到 14 年前
        1
  •  1
  •   AnthonyWJones    16 年前

    我认为您可能对数据上下文的使用有点困惑。例如,您可能有一些富文本,其中有一个或多个子级 InlineUIContainer 元素可以从某个对象的属性中检索其文本。将对象分配给 DataContext .

    虽然我不太确定你期望实现什么,但我怀疑你真正需要的是你的转换器实际返回 BlocksCollection (即使里面只有单曲 Block 你原创性的回归),然后约束为:

    <RichTextArea x:Name="rtaTest" BorderThickness="0" IsReadOnly="True"
     UseLayoutRounding="True"
     Blocks="{Binding Source={StaticResource Localization},
       Path=Home.MainContent, Converter={StaticResource ParagraphFormatConverter}}" />
    
        2
  •  5
  •   Jay Borseth    16 年前

    跑 似乎支持SL4中的数据绑定,如:

    <RichTextBox>
      <Paragraph>
        <Run Text="{Binding Path=LineFormatted}" />
      </Paragraph>
    </RichTextBox>
    
        3
  •  1
  •   user298145    16 年前

    这个fillfromxml是wpf吗?在Silverlight中看不到。

        4
  •  0
  •   stealthyninja michkra    14 年前

    无法设置块,只能提取它们。设置块的一种方法 RichTextArea 是

    public static void UpdateRichTextArea(RichTextArea area, string xmlText)
    {
        if (area == null)
        return;
    
        area.Blocks.FillFromXml(xmlText, true);
    }