gpt4 book ai didi

c# - 带有 Prism 的基本 ViewModel 中的属性更改

转载 作者:行者123 更新时间:2023-12-03 11:02:27 25 4
gpt4 key购买 nike

我正在使用 prism 开发一个 android 应用程序。

我正在尝试制作一个 Base ViewModel。在这个 ViewModel 中,我想为我的所有 ViewModel 设置通用属性。

  public class BaseViewModel : BindableBase
{
protected INavigationService _navigationService;
protected IPageDialogService _dialogService;

public BaseViewModel(INavigationService navigationService, IPageDialogService dialogService)
{
_navigationService = navigationService;
_dialogService = dialogService;
}

private string _common;
/// <summary>
/// Common property
/// </summary>
public string CommonProperty
{
get { return _common; }
set
{
_common = value;
SetProperty(ref _common, value);
}
}
}

我的问题是:当我在构造函数中设置公共(public)属性时,工作正常。
但是当我在 OnNavigatingTo 中设置公共(public)属性时并且使用异步,不起作用。 SetProperty调用 OnNavigatingTo 时触发,但是我的具有此公共(public)属性的绑定(bind)标签不会刷新该值。
namespace TaskMobile.ViewModels.Tasks
{
/// <summary>
/// Specific view model
/// </summary>
public class AssignedViewModel : BaseViewModel, INavigatingAware
{


public AssignedViewModel(INavigationService navigationService, IPageDialogService dialogService) : base(navigationService,dialogService)
{
CommonProperty= "Jorge Tinoco"; // This works
}

public async void OnNavigatingTo(NavigationParameters parameters)
{
try
{
Models.Vehicle Current = await App.SettingsInDb.CurrentVehicle();
CommonProperty= Current.NameToShow; //This doesn´t works
}
catch (Exception e)
{
App.LogToDb.Error(e);
}
}
}

最佳答案

使用 SetProperty 时,不应为后场设置值。
所以你应该删除这一行:

_common = value;

关于c# - 带有 Prism 的基本 ViewModel 中的属性更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51180925/

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