xamarin.forms - 标签中的数据绑定问题文本未显示数据
问题描述
以下标签在运行时不显示数据<Label Text="{Binding Firstname}"
/> 如果我在调试模式下运行代码并且如果我将标签更改为编辑器或其他内容,它会显示数据。请让我知道为什么会这样,我该如何解决。
私有字段背后的代码
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 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;
解释:
如果您不使用 Firstname 属性设置器,则OnPropertyChanged(nameof(Firstname));
永远不会被调用。
因此 XAML 不知道该属性的值已更改。
推荐阅读
- html - 将鼠标悬停在导航栏中时不显示文本
- visual-studio - 如何减少运行 480,000 次迭代的循环的执行时间?
- python - Python中不允许前导零?
- html - 允许用户在我的 CRUD 网络应用程序(如 Stack Overflow、Medium)中的帖子中添加图像和编写代码片段
- reactjs - 如何在 React 中的状态更改时更新道具的值
- javascript - React ClassComponent 没有正确循环
- python - 轻量级python gui窗口
- php - 如何在 Laravel 中使用 Jquery Ajax
- javascript - 重新加载div而不刷新页面
- python - Atom:无法在设置的安装包部分中搜索包或主题