在TextBlock中使用绑定的硬编码文本

时间:2009-04-25 16:06:45

标签: wpf xaml data-binding textblock

在WPF中,有没有办法让Text的{​​{1}}属性包含硬编码文本和特定绑定?

我想到的是以下内容( ofcourse,下面不编译)

TextBlock

5 个答案:

答案 0 :(得分:83)

如果您使用的是.Net 3.5 SP1

<TextBlock Text="{Binding Path=Artist.Fans.Count, 
                 StringFormat='Number of Fans: {0}'}" />

答案 1 :(得分:33)

使用上述方法:

<TextBlock Text="{Binding Path="Artist.Fans.Count", 
                  StringFormat='Number of Fans: {0}'}" />

我发现它有些限制,因为我找不到在StringFormat中使用粗体的方法,也不能在StringFormat中使用撇号。

相反,我采用了这种方法,对我来说效果更好:

<TextBlock TextWrapping="Wrap">
    <Run>The value</Run>
    <Run Text="{Binding Path=MyProperty1, Mode=OneWay}" FontWeight="Bold" />
    <Run>was invalid. Please enter it with the format... </Run>
    <LineBreak/><LineBreak/>
    <Run>Here is another value in the program</Run>
    <Run Text="{Binding Path=MyProperty2, Mode=OneWay}" FontWeight="Bold" />
</TextBlock>                    

答案 2 :(得分:4)

使用Binding.StringFormat

<TextBlock Text="{Binding Artist.Fans.Count, StringFormat='Number of Fans: {0}'}"/>

答案 3 :(得分:2)

这里绑定值(clouds.all)添加了“%”。您可以在“\ {0 \}”之后添加所需的任何值。

 <TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/>

答案 4 :(得分:-1)

使用使用模板10和MVVM的XAML:

请明确说明:

  • 通过定义,绑定将值绑定到控件的属性。
  • 在“模板10”框架中实现的MVVM范例下,值在与相关XAML页关联的ViewModel中初始化。

以下是在Text属性中如何对文本进行硬编码和绑定的方法:

    <Page
        ...
        xmlns:vm="using:doubleirish.ViewModels"
        xmlns:sys="using:System"
        xmlns:controls="using:Template10.Controls"
        ...

        <Page.DataContext>
            <vm:StocksViewModel x:Name="ViewModel" />
        </Page.DataContext>

        ...

        <controls:PageHeader ... Text="{x:Bind sys:String.Format('Ticker : {0}', ViewModel.Ticker)}">

    ...

    </Page>