使用绑定XAML连接字符串

Joh*_*ohn 10 xaml binding xamarin

是否可以在同一标签中包含一些静态文本和可绑定上下文?

<Label Text = "${Binding totalCost}"
       x:Name = "totalCost"
       HorizontalOptions = "Start"
       VerticalOptions = "Start"
       Grid.Row = "6" Grid.Column = "1"/>
Run Code Online (Sandbox Code Playgroud)

除此之外显示为"$ {Binding totalCost}"

我知道我可以通过做类似的事情轻松地设置场地,totalCost.Text = String.Format("${0}", totalCost);但只是想看看是否可能反过来

15e*_*153 30

看看这是否适合您:

Text="{Binding totalCost, StringFormat='${0}'}"
Run Code Online (Sandbox Code Playgroud)

不同XAMLS可能会有所不同,但我希望StringFormatBinding工作只有在绑定的目标属性的类型的String.例如,在WPF中,它适用于TextBlock.Text但不适用于Label.Content类型Object.出于这个原因,它经常会无声地失败,如果你不熟悉那个小小的诱杀陷阱,这可能会非常烦人.

另一个方便的事情要知道:ContentControl它的许多后代(Label等)都有一个ContentStringFormat强制Content转换为字符串并对其进行格式化的属性.HeaderedItemsControl(基础类的MenuItem,等)和HeaderedContentControl(基类GroupBox等)分别具有一个HeaderStringFormat属性,其做同样为各自的Header属性.

  • @Shane好消息! (2认同)

小智 10

对于标签,还有附加功能:ContentStringFormat,示例如下:

<Label Content="{Binding Tag, FallbackValue=Custom}" ContentStringFormat="Length: {0}" DataContext="{Binding ElementName=cbRebarLength, Path=SelectedItem}"/>
Run Code Online (Sandbox Code Playgroud)