Самый простой способ - обернуть строковое свойство в viewmodel и установить значение, используя метод String.Format()
.
Я написал простую демонстрацию, чтобы объяснить это.
Предположим, что в вашей модели представления есть 2 значения с плавающей точкой: float1
и float2
,
Вы можете добавить строковое свойство OutputString
и установить его значение с помощью: this.OutputString = String.Format("Value1 is {0}; Value2 is {1}", Value1, Value2);
А затем привяжите текст метки к OutputString
Полный код выглядит следующим образом:
MyViewModel.cs
class MyViewModel : INotifyPropertyChanged
{
float value1;
float value2;
string outputString;
public event PropertyChangedEventHandler PropertyChanged;
public MyViewModel()
{
this.Value1 = 1.1f;
this.Value2 = 1.2f;
this.OutputString = String.Format("Value1 is {0}; Value2 is {1}", Value1, Value2);
}
public float Value1
{
set
{
if (value1 != value)
{
value1 = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Value1"));
}
}
}
get
{
return value1;
}
}
public float Value2
{
set
{
if (value2 != value)
{
value2 = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Value2"));
}
}
}
get
{
return value2;
}
}
public string OutputString
{
set
{
if (outputString != value)
{
outputString = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("OutputString"));
}
}
}
get
{
return outputString;
}
}
}
MainPage.xaml:
<ContentPage.BindingContext>
<local:MyViewModel/>
</ContentPage.BindingContext>
<StackLayout>
<!-- Place new controls here -->
<Label Text="{Binding OutputString}"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
</StackLayout>