64

在 WPF 中,有没有办法让Texta 的属性TextBlock同时包含硬编码文本和特定绑定?

我想到的是以下内容(当然,以下内容无法编译)

<TextBlock Text="Number of Fans: {Binding Artist.Fans.Count}"></TextBlock>
4

5 回答 5

114

有,如果你在 .Net 3.5 SP1

<TextBlock Text="{Binding Path=Artist.Fans.Count, 
                 StringFormat='Number of Fans: {0}'}" />
于 2009-04-25T16:14:34.267 回答
39

在使用上述方法时:

<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>                    
于 2012-12-12T22:10:08.773 回答
6

使用Binding.StringFormat

<TextBlock Text="{Binding Artist.Fans.Count, StringFormat='Number of Fans: {0}'}"/>
于 2009-04-25T16:16:35.883 回答
5

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

 <TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/>
于 2015-10-28T07:00:14.723 回答
0

通过使用模板 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>
于 2018-12-18T21:51:28.487 回答