Вы можете попробовать код ниже.
ViewModel1.cs:
class ViewModel1 : INotifyPropertyChanged
{
private string _labelText;
public string LabelText
{
set
{
if (_labelText != value)
{
_labelText = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("LabelText"));
}
}
}
get
{
return _labelText;
}
}
public event PropertyChangedEventHandler PropertyChanged;
public ViewModel1()
{
this.LabelText = "hello_1";
}
}
ViewModel2.cs:
class ViewModel2 : INotifyPropertyChanged
{
private string _labelText2;
public string LabelText
{
set
{
if (_labelText2 != value)
{
_labelText2 = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("LabelText"));
}
}
}
get
{
return _labelText2;
}
}
public event PropertyChangedEventHandler PropertyChanged;
public ViewModel2()
{
this.LabelText = "hello_2";
}
}
Xaml:
<ContentView>
<StackLayout>
<Label
FontSize="Large"
Text="{Binding LabelText}">
<Label.BindingContext>
<local:ViewModel1 />
</Label.BindingContext>
</Label>
<Label
FontSize="Large"
Text="{Binding LabelText}">
<Label.BindingContext>
<local:ViewModel2 />
</Label.BindingContext>
</Label>
</StackLayout>
</ContentView>
Для получения дополнительной информации о том, как установить BindingContext метки, вы можете обратиться к документам MS. https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/data-bindings-to-mvvm