是否可以在更改输入字段时直接更改 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 得出这个想法:
我不知道为什么需要这样做,但现在可以了!
谢谢!
我是 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 得出这个想法:
我不知道为什么需要这样做,但现在可以了!
谢谢!