0

我是 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 对象发送到我的 web api 以进行保存、更新等操作?

非常感谢。

4

2 回答 2

0

例如,这是一种模式:

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));
    }
}

你可以参考绑定模式

于 2019-10-31T02:02:19.287 回答
0

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

通过这篇文章得出了这个想法:链接

我不知道为什么这是必要的,但它现在有效!

谢谢!

于 2019-10-31T14:19:25.680 回答