Я использую метку в формах Xamarin. Мне нужно отобразить текст, который в основном является предложением, но часть этой строки содержит число, которое я получаю из вызова api, а остальная часть строки фиксирована.
Я хочу использовать привязку данных для настройки этой части. Пример :
Текст может быть таким: "Вы наверняка можете выиграть {0} долларов".
Значение {0} поступает из API и вы хотите использовать привязку данных для его привязки.
Требуется синтаксис, который будет использоваться для привязки такой строки.
2 ответа
Вы можете использовать модельную привязку к данным в вашей этикетке. Просто так: в 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";
Если есть проблема, вы можете обратиться к этому Официальный документ
Использовать промежутки внутри метки
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="You can win " />
<Span Text="{Binding DollarAmount}" />
<Span Text=" dollars for sure." />
</FormattedString>
</Label.FormattedText>
</Label>
Похожие вопросы
Новые вопросы
xamarin.forms
Xamarin.Forms - это продукт Microsoft, позволяющий создавать собственные кроссплатформенные приложения для Android, iOS, Windows и других из единой общей кодовой базы C #.