gpt4 book ai didi

xamarin - Prism :在 ViewModel 中设置值后 View 没有更新?

转载 作者:行者123 更新时间:2023-12-03 10:22:13 25 4
gpt4 key购买 nike

我无法从 ViewModel 将值绑定(bind)到 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" />

页面 View 模型:
    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如果值实际发生变化。通过预先设置它,您可以防止这种情况发生,并且 View 无法知道它应该更新。

你想写:

public string Heading
{
get { return _Heading; }
set { SetProperty(ref _Heading, value); }
}

注意缺少的 _Heading = value;

关于xamarin - Prism :在 ViewModel 中设置值后 View 没有更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57176863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com