xamarin - 棱镜:在 ViewModel 中设置值后视图没有更新?
问题描述
我无法从 ViewModel 将值绑定到 View,我可以看到值正在设置(ServiceList)
这是 Xaml
XAML:
<Label
Grid.Row="0"
FontFamily="{StaticResource BoldFont}"
FontSize="{StaticResource NormalFontSize}"
HorizontalOptions="StartAndExpand"
Text="{Binding Heading, Mode=TwoWay}"
TextColor="Black"
VerticalOptions="CenterAndExpand" />
页面视图模型:
private string _Heading;
public string Heading
{
get { return _Heading; }
set { _Heading = value; SetProperty(ref _Heading, value); }
}
async void LoadData(Service service)
{
Dictionary<string, string> data = new Dictionary<string, string>();
if (App.Current.Properties.ContainsKey("user_id"))
data.Add("user_id", App.Current.Properties["user_id"].ToString());
data.Add("subcategory", service.id.ToString());
data.Add("city", "ABC");
UserResponse = await HomeService.GetServices(data);
if (UserResponse.status == 200)
{
Heading = "529 Interior Decorators in Las Vegas";
}
}
解决方案
这是因为只有在值实际发生变化时SetProperty
才会提高。PropertyChanged
通过预先设置它,您可以防止这种情况发生,并且视图无法知道它应该更新。
你想写:
public string Heading
{
get { return _Heading; }
set { SetProperty(ref _Heading, value); }
}
注意缺失_Heading = value;
推荐阅读
- python - 具有 LSTM 或 CNN 的只有值 (0,1,-1) 的数据集提供 50% 的准确率,而 RF、SVM、ELM、神经网络的准确率超过 90%
- android - 如何创建一个颜色选择器,就像这个颜色选择器的图像
- spring-boot - Rabbitmq 实现回调队列功能的建议
- angular - Angular Universal 不从服务器渲染数据
- c# - 如何在 C# 中解析这种类型的 JSON(嵌套)
- python - 从列表中提取特定单词之后出现的第一个元素
- python - PYTHON MYSQL 第二次不起作用
- java - 结果返回多个元素;嵌套异常是 javax.persistence.NonUniqueResultException: 结果返回多个元素
- android - 仅在首次启动时授予存储权限后应用程序崩溃
- java - Spring MVC 中 ModelAndView 中的重定向问题