C# 使用reactiveui获取构造函数时出错
我有一个视图模型,它有两个视图模型作为属性:C# 使用reactiveui获取构造函数时出错,c#,.net,reactive,reactiveui,C#,.net,Reactive,Reactiveui,我有一个视图模型,它有两个视图模型作为属性: public class PokemonViewModel : ReactiveObject, IEnableLogger { private readonly IPokemonService PokemonService; [Reactive] public PokemonListViewModel PokemonListViewModel { get; set; }
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...
}
public类PokemonViewModel:ReactiveObject,IEnableLogger
{
私有只读IPokemonService PokemonService;
[反应性]
公共PokemonListViewModel PokemonListViewModel{get;set;}
私有只读ObservablesPropertyHelper口袋妖怪视图模型;
公共PokemonDetailsViewModel PokemonDetailsViewModel=>PokemonDetailsViewModel.Value;
公共PokemonViewModel(IPokemonService pokemonService=null)
{
PokemonService=PokemonService??Locator.Current.GetService();
PokemonListViewModel=新的PokemonListViewModel();
pokemonDetailsViewModel=this.WhenAnyValue(x=>PokemonListViewModel.SelectedPokemon)
.SelectMany(GetPokemonDetailsViewModelAsync)
.ToProperty(这个,x=>x.PokemonDetailsViewModel);
}
//私有方法。。。
}
PokemonListViewModel
包含未在构造函数上初始化的SelectedPokemon
属性,因此在启动时为空
有鉴于此,当我运行应用程序时,会出现以下错误:“不支持“Constant”类型的表达式。您是否错过了表达式中的成员访问前缀?”
如何解决这个问题?WhenyValue调用中应该是
x=>x.PokemonListViewModel