我有一个视图模型,它有两个视图模型作为属性:
public class PokemonViewModel : ReactiveObject, IEnableLogger
{
private readonly IPokemonService PokemonService;
[Reactive]
public PokemonListViewModel PokemonListViewModel { get; set; }
private readonly ObservableAsPropertyHelper<PokemonDetailsViewModel> pokemonDetailsViewModel;
public PokemonDetailsViewModel PokemonDetailsViewModel => pokemonDetailsViewModel.Value;
public PokemonViewModel(IPokemonService pokemonService = null)
{
PokemonService = pokemonService ?? Locator.Current.GetService<IPokemonService>();
PokemonListViewModel = new PokemonListViewModel();
pokemonDetailsViewModel = this.WhenAnyValue(x => PokemonListViewModel.SelectedPokemon)
.SelectMany(GetPokemonDetailsViewModelAsync)
.ToProperty(this, x => x.PokemonDetailsViewModel);
}
//private methods...
}
PokemonListViewModel
包含一个未在构造函数上初始化的SelectedPokemon
属性,因此在启动时为null
鉴于此,当我运行应用程序时,我会得到以下错误:"Unsupported expression of type 'Constant'. Did you miss the member access prefix in the expression?"
我该如何解决这个问题?
在WhenAnyValue调用中应该是x => x.PokemonListViewModel
。