Label控件绑定Firstname数据不显示 替换为Editor则正常 如何解决?
问题产生原因
- 你在
GetDataAsync方法中直接对私有字段firstname、lastname、email、phone赋值,没有触发对应公共属性set方法内的OnPropertyChanged属性变更通知。 - Label控件默认绑定模式为OneWay(单向绑定),仅在收到属性变更通知时才会更新UI内容。你执行异步拉取数据的逻辑时,页面已经完成初始渲染,后续字段值更新未通知到UI层,因此Label一直显示初始空值。
- Editor等输入类控件默认绑定模式多为TwoWay(双向绑定),这类控件会在渲染周期中主动拉取最新的属性值,因此可以正常展示数据。
解决方案
修改GetDataAsync方法中的赋值逻辑,改为对公共属性赋值,触发属性变更通知即可:
public async Task GetDataAsync() { var user = await DependencyService.Get<IAccountService>().GetUserAsync(); Phone = user.Phone; Email = user.Email; Firstname = user.Firstname; Lastname = user.Lastname; }
内容的提问来源于stack exchange,提问作者Sumit yadu
相关产品推荐
相关产品推荐

