是否可以在更改输入字段时直接更改 BindingContext 对象数据绑定对象?

Can a BindingContext object data binding object directly be changed on changing of an entry field?

我是 xamarin 的新手,希望有人能帮助我:

我有一个带有输入字段和数据绑定的简单页面。

我有一个带有列表视图的页面 A。当我点击一个项目时,我被重定向到具有表单元素的页面 B。

 async void LvData_ItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            if (e.SelectedItem != null)
            {
                var secondPage = new ProfileDataPage();
                secondPage.BindingContext = e.SelectedItem;
                await Navigation.PushAsync(secondPage);
            }
        }

这行得通,并且在页面 B 中的字段中填充了正确的数据。

现在我更改输入字段的值。然后我单击“保存”按钮并执行如下操作(profileData = BindingContext 对象):

 profileData.Height = Functions.ToNullableDouble(Height.Text);
profileData.Weight = Functions.ToNullableDouble(Weight.Text);
etc...

BindingContext 是否不知道条目的值已更改,我可以将 BindingContext 对象发送到我的网站 api 以进行保存、更新等操作?

非常感谢。

例如,这里有一个模式:

class MyData : INotifyPropertyChanged
{
    string height;
    string weight;
    public MyData(string height,string weight)
    {
        this.height= height;
        this.weight= weight;
    }

    public string Height
    {
        set
        {
            if (height!= value)
            {
                height= value;
                OnPropertyChanged("Height");

            }
        }
        get
        {
            return height;
        }
    }
   public string Weight
    {
        set
        {
            if (weight!= value)
            {
                weight= value;
                OnPropertyChanged("Weight");

            }
        }
        get
        {
            return weight;
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

可以参考Binding Mode

所以我尝试了你的解决方案,这很有帮助,但只有在我更新了我的 VS、所有 nuget 包等等之后..

通过这个 post 得出这个想法:

我不知道为什么需要这样做,但现在可以了!

谢谢!