C# 如何使用Autofac解决视图模型的类型问题?
在使用Autofac容器并注册了VM的应用程序中,我需要在我只查看模型类型的情况下分配DataContext MainViewModel调用导航服务: 等待NavigationService.NavigateToAsync 在我的服务课上,如何从这做起这很好: 这不起作用: 这给了我一个错误: “viewModelType”是一个变量,但与类型一样使用C# 如何使用Autofac解决视图模型的类型问题?,c#,wpf,mvvm,types,datacontext,C#,Wpf,Mvvm,Types,Datacontext,在使用Autofac容器并注册了VM的应用程序中,我需要在我只查看模型类型的情况下分配DataContext MainViewModel调用导航服务: 等待NavigationService.NavigateToAsync 在我的服务课上,如何从这做起这很好: 这不起作用: 这给了我一个错误: “viewModelType”是一个变量,但与类型一样使用 将类型作为参数传递给ResolveType serviceType 不要尝试将其用作泛型参数将类型作为参数window.DataContext=
将类型作为参数传递给ResolveType serviceType
不要尝试将其用作泛型参数将类型作为参数window.DataContext=container.ResolveviewModelType传递;好的,我花了5个小时来处理这个问题。这很简单。非常感谢。
private async Task InternalNavigateToAsync(Type viewModelType, object parameter)
{
var bootStrapper = new BootStrapper();
var container = bootStrapper.BootStrap();
Window window = CreateWindow(viewModelType, parameter);
//this works fine
if (viewModelType.Name == "MainViewModel")
{
window.DataContext = container.Resolve<MainViewModel>();
}
if (viewModelType.Name == "UpdateViewModel")
{
window.DataContext = container.Resolve<UpdateViewModel>();
}
window.Show();
}
private async Task InternalNavigateToAsync(Type viewModelType, object parameter)
{
var bootStrapper = new BootStrapper();
var container = bootStrapper.BootStrap();
Window window = CreateWindow(viewModelType, parameter);
//but how to do this?
window.DataContext = container.Resolve<viewModelType>();
window.Show();
}
window.DataContext = container.Resolve(viewModelType);