【问题标题】:Concatenate String with Bindings XAML使用绑定 XAML 连接字符串
【发布时间】:2016-09-12 15:06:40
【问题描述】:

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

<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); 之类的操作轻松设置字段,但只是想看看是否可以采用其他方式

【问题讨论】:

标签: xaml xamarin binding


【解决方案1】:

看看这是否适合你:

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

【讨论】:

  • 谢谢!这确实对我有用。如果允许,我会在 5 分钟内接受你的回答。
  • 这太棒了。也在 WPF 核心中工作。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    我正在考虑 .NET 做你想做的事情的方式,即格式值字符串作为货币,使用绑定属性 StringFormatCurrency Format Specifier

    Text="{Binding totalCost, StringFormat=\{0:C\}}"
    

    您的代码将如下所示

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

    干杯。

    【讨论】:

      【解决方案4】:

      尽管选择的答案是正确的,但您将忽略您的货币价值或潜在期限中的逗号。更好的方法是公开一个为绑定提供适当值的 get 属性。下面是以后任何人的代码sn-p

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

      在您的视图模型中

      double totalCost;
      public double TotalCost 
      {
          get { return totalCost; }
          set 
          {
              totalCost = value;
              OnPropertyChanged(nameof(TotalCostFormatted));
          }
      }
      public string TotalCostFormatted
      {
          get { return TotalCost.ToString("C0"); } 
      }
      

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

      【讨论】:

        猜你喜欢
        • 2011-01-01
        • 1970-01-01
        • 2020-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 2022-01-08
        • 2015-10-19
        相关资源
        最近更新 更多