我正在以Xamarin形式使用Label。 我必须显示一个基本上是一个句子的文本,但是该字符串的一部分包含一个我通过api调用获得的数字,其余的字符串是固定的。
我想使用数据绑定来设置该部分。 示例:
文字可能像是:“您可以肯定赢得{0}美元”
{0}值来自api,并希望使用数据绑定来绑定它。
需要用于绑定这种字符串的语法。
答案 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>