我试图将我的ShellPage的Dispatcher注入到ViewModel中,使用Unity和Prism。由于调度程序在创建shell后可用,因此我无法及时注册调度程序。
第一步:将Dispatcher注入ViewModel - 重构Unity - 属性注入
protected override Task OnInitializeAsync(IActivatedEventArgs args)
{
[...]
Container.RegisterInstance<IResourceLoader>(resourceLoader);
其次,CreateShell方法将被执行。
protected override UIElement CreateShell(Frame rootFrame)
{
var shell = Container.Resolve<ShellPage>();
Container.RegisterType<MyViewModel>(new InjectionProperty(nameof(MyViewModel.Dispatcher), shell.Dispatcher));
尽管我将Dispatcher插入到MyViewModel中,但属性Dispatcher为null。也许我需要在MEF中重新构建一些东西?我怎样才能实现在MyViewModel中的属性注入?