Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用绑定XAML连接字符串_Xaml_Xamarin_Binding - Fatal编程技术网

用绑定XAML连接字符串

用绑定XAML连接字符串,xaml,xamarin,binding,Xaml,Xamarin,Binding,是否可以在同一标签中包含一些静态文本和可绑定上下文 <Label Text = "${Binding totalCost}" x:Name = "totalCost" HorizontalOptions = "Start" VerticalOptions = "Start" Grid.Row = "6" Grid.Column = "1"/> 除此之外,它显示为“${Binding totalCost}” 我知道我可以通过

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

<Label Text = "${Binding totalCost}"
       x:Name = "totalCost"
       HorizontalOptions = "Start"
       VerticalOptions = "Start"
       Grid.Row = "6" Grid.Column = "1"/>

除此之外,它显示为“${Binding totalCost}”


我知道我可以通过执行类似于
totalCost.Text=String.Format(“${0}”,totalCost)的操作轻松设置字段但我只是想看看是否有可能用另一种方式来实现

看看这是否适用于您:

Text="{Binding totalCost, StringFormat='${0}'}"

尽管所选答案正确,但您将忽略货币值或潜在期间中的逗号。更好的方法是公开为绑定提供适当值的get属性。下面是将来任何人的代码片段

<Label Text = "${Binding TotalCostFormatted}"
      x:Name = "totalCost"
      HorizontalOptions = "Start"
      VerticalOptions = "Start"
      Grid.Row = "6" Grid.Column = "1"/>

请记住,您总是可以在
ViewModel
中创建一个
get
属性来公开一些数据。调用
OnPropertyChanged
或调用实现
INotifyPropertyChanged
接口的任何方法。如果您想要美元值上的美分,请将“C0”更改为“C”。

我认为.NET实现您想要的功能的方法是将值字符串格式化为货币,它使用绑定属性
StringFormat
,同时使用:

您的代码如下所示

<Label Text="{Binding totalCost, StringFormat=\{0:C\}}"
   x:Name = "totalCost"
   HorizontalOptions = "Start"
   VerticalOptions = "Start"
   Grid.Row = "6"
   Grid.Column = "1"/>


干杯。

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

<Label Content="{Binding Tag, FallbackValue=Custom}" ContentStringFormat="Length: {0}" DataContext="{Binding ElementName=cbRebarLength, Path=SelectedItem}"/>


谢谢!事实上,这对我很有用。如果允许的话,我会在5分钟内接受你的回答。这太棒了。在WPF核心工作。
<Label Text="{Binding totalCost, StringFormat=\{0:C\}}"
   x:Name = "totalCost"
   HorizontalOptions = "Start"
   VerticalOptions = "Start"
   Grid.Row = "6"
   Grid.Column = "1"/>
<Label Content="{Binding Tag, FallbackValue=Custom}" ContentStringFormat="Length: {0}" DataContext="{Binding ElementName=cbRebarLength, Path=SelectedItem}"/>