标签中的数据绑定问题文本不显示数据
Data Binding Issue text in label is not displaying data
下面的 Label 在 运行 连接它时不显示数据 <Label Text="{Binding Firstname}"
/> 如果我 运行 在调试模式下编码并且如果我将 Label 更改为 Editor 或显示数据的其他内容。
请让我知道为什么会这样,我该如何解决。
代码隐藏
私人领域
private string email;
private string phone;
private string firstname;
private string lastname;
方法从FirebaseFirestore
调用数据
public async Task GetDataAsync()
{
var user = await DependencyService.Get<IAccountService>().GetUserAsync();
phone = user.Phone;
email = user.Email;
firstname = user.Firstname;
lastname = user.Lastname;
}
Public 属性
public string Firstname
{
get { return firstname; }
set
{
firstname = value;
OnPropertyChanged(nameof(Firstname));
}
}
public string Lastname
{
get {return lastname;}
set
{
lastname = value;
OnPropertyChanged(nameof(Lastname));
}
}
public string Email
{
set
{
if (email != value)
{
email = value;
OnPropertyChanged("Email");
}
}
get
{
return email;
}
}
public string Phone
{
set
{
if (phone != value)
{
phone = value;
OnPropertyChanged("Phone");
}
}
get
{
return phone;
}
}
这一行:
firstname = user.Firstname;
必须改为:
Firstname = user.Firstname;
解释:
如果您不使用名字 属性 setter,那么 OnPropertyChanged(nameof(Firstname));
永远不会被调用。
所以 XAML 不知道 属性 的值已经改变。
下面的 Label 在 运行 连接它时不显示数据 <Label Text="{Binding Firstname}"
/> 如果我 运行 在调试模式下编码并且如果我将 Label 更改为 Editor 或显示数据的其他内容。
请让我知道为什么会这样,我该如何解决。
代码隐藏 私人领域
private string email;
private string phone;
private string firstname;
private string lastname;
方法从FirebaseFirestore
调用数据 public async Task GetDataAsync()
{
var user = await DependencyService.Get<IAccountService>().GetUserAsync();
phone = user.Phone;
email = user.Email;
firstname = user.Firstname;
lastname = user.Lastname;
}
Public 属性
public string Firstname
{
get { return firstname; }
set
{
firstname = value;
OnPropertyChanged(nameof(Firstname));
}
}
public string Lastname
{
get {return lastname;}
set
{
lastname = value;
OnPropertyChanged(nameof(Lastname));
}
}
public string Email
{
set
{
if (email != value)
{
email = value;
OnPropertyChanged("Email");
}
}
get
{
return email;
}
}
public string Phone
{
set
{
if (phone != value)
{
phone = value;
OnPropertyChanged("Phone");
}
}
get
{
return phone;
}
}
这一行:
firstname = user.Firstname;
必须改为:
Firstname = user.Firstname;
解释:
如果您不使用名字 属性 setter,那么 OnPropertyChanged(nameof(Firstname));
永远不会被调用。
所以 XAML 不知道 属性 的值已经改变。