Xamarin形式的标签的数据绑定部分

时间:2018-10-24 01:16:28

标签: xamarin.forms

我正在以Xamarin形式使用Label。 我必须显示一个基本上是一个句子的文本,但是该字符串的一部分包含一个我通过api调用获得的数字,其余的字符串是固定的。

我想使用数据绑定来设置该部分。 示例:

文字可能像是:“您可以肯定赢得{0}美元”

{0}值来自api,并希望使用数据绑定来绑定它。

需要用于绑定这种字符串的语法。

2 个答案:

答案 0 :(得分:1)

您可以使用modle绑定到标签中的数据,就像这样: 在xaml中:

 <Label Text="{Binding Name,StringFormat='You can win {0} dollars for sure'}" 
       HorizontalOptions="Center"
       VerticalOptions="CenterAndExpand" />

在ContentPage中,应绑定上下文:

 nativeDataTemple = new NativeDataTemple();
 BindingContext = nativeDataTemple;

和Molde(您自定义的 NativeDataTemple )应包含绑定属性,如下所示:

private string name = "520";
    public string Name
    {
        set
        {
            if (name != value)
            {
                name = value;
                OnPropertyChanged("Name");
            }
        }
        get
        {
            return name;
        }
    }

并在您的模块中,当名称值在后台更改时,将 INotifyPropertyChanged 添加到该模块中,然后使用方法

 protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

然后在要更改数据的位置,请执行以下操作:

nativeDataTemple.Name = "550";

如果有问题,可以参考此Official document

答案 1 :(得分:0)

在标签内使用跨度

<Label>
  <Label.FormattedText>
    <FormattedString>
      <Span Text="You can win " />
      <Span Text="{Binding DollarAmount}" />
      <Span Text=" dollars for sure." />
    </FormattedString>
  </Label.FormattedText>
</Label>