我有一个问题。现在,我有一个基于mvvm的xamarin表单应用程序。我要实现的目标如下:将视图与视图模型中的属性绑定,并使用该属性引用服务类中的属性。更改服务属性后,应更新从不同视图模型绑定到服务属性的所有视图。我该如何实现?
下面的代码来自一个视图模型,还有更多的视图模型具有引用服务属性的属性。
public string Signature
{
get => _activityStateService.Details.Signature.Autograph;
set
{
_activityStateService.Details.Signature.Autograph = value;
OnPropertyChanged(nameof(Signature));
}
}
当以下对象的属性之一发生更改时,我想通知引用该对象的viewmodel(s)属性,以便可以更新视图。
public class ActivityStateService : IActivityStateService
{
public DriverActivity Details { get; set; }
}
答案 0 :(得分:0)
视图只能具有一个绑定上下文。如果您想拥有多个,那是不可能的。但是,我们还有另一种解决此问题的方法。首先,您需要在Viewmodelbase中具有此属性(需要在多个页面中进行绑定)。该属性的值应保存到首选项,并从首选项中获取。要获取偏好的详细信息,请检查Xamarin要点
答案 1 :(得分:0)
您可能还有另一个选择,可以使用此值的服务,您可以使用本地数据库保存页面的信息,而当另一页面检索更新的值时,该信息可能会显示在页面上。