wpf 在TextBlock中具有带绑定的硬编码文本

cbeh67ev  于 2022-12-27  发布在  其他
关注(0)|答案(6)|浏览(132)

在WPF中,是否有办法使TextBlockText属性同时包含硬编码文本和特定绑定?
我所想到的是以下几点(* 当然,下面的内容没有编译)*:

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

mbjcgjjk1#

如果您使用的是.Net 3.5 SP1,则有

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

u4vypkhs2#

在使用上述方法时:

<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>
wnvonmuf

wnvonmuf3#

使用Binding.StringFormat

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

2izufjch4#

这里的绑定值(clouds.all)添加了“%"。您可以在“{0}"后面添加任何您想要的值。

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

lokaqttq5#

    • 使用模板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>
92vpleto

92vpleto6#

对我有效的解决方案是:

<Label Content="{Binding Artist.Fans.Count}" ContentStringFormat="Number of {0}"/>

相关问题