Xamarin Forms将视图与ViewModel绑定在一起,将ViewModel与Service绑定在一起

时间:2020-03-08 12:44:21

标签: mvvm xamarin.forms binding

我有一个问题。现在,我有一个基于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; }
}

2 个答案:

答案 0 :(得分:0)

视图只能具有一个绑定上下文。如果您想拥有多个,那是不可能的。但是,我们还有另一种解决此问题的方法。首先,您需要在Viewmodelbase中具有此属性(需要在多个页面中进行绑定)。该属性的值应保存到首选项,并从首选项中获取。要获取偏好的详细信息,请检查Xamarin要点

答案 1 :(得分:0)

您可能还有另一个选择,可以使用此值的服务,您可以使用本地数据库保存页面的信息,而当另一页面检索更新的值时,该信息可能会显示在页面上。