Wpf Caliburn.Micro WindowManager和窗口构造函数参数
看起来Caliburn.Micro的WindowManager与WPF窗口存在问题,WPF窗口具有构造函数参数,尽管该参数的类型已在Caliburn.Micro IoC中注册。除了在构造函数中使用臭烘烘的服务定位器(Of T),还有没有更好的方法将所需的参数放入窗口Wpf Caliburn.Micro WindowManager和窗口构造函数参数,wpf,mvvm,caliburn.micro,Wpf,Mvvm,Caliburn.micro,看起来Caliburn.Micro的WindowManager与WPF窗口存在问题,WPF窗口具有构造函数参数,尽管该参数的类型已在Caliburn.Micro IoC中注册。除了在构造函数中使用臭烘烘的服务定位器(Of T),还有没有更好的方法将所需的参数放入窗口 Namespace Views Class MainWindowView Private _eventAggregator As IEventAggregator Public Sub New(eventAggr
Namespace Views
Class MainWindowView
Private _eventAggregator As IEventAggregator
Public Sub New(eventAggregator As IEventAggregator)
_eventAggregator = eventAggregator
End Sub
End Class
End Namespace
Sub ShowMainWindowView()
'Everything is correctly registered in Ioc...
Dim windowManager As New WindowManager
Dim viewModel As New MainWindowViewModel
windowManager.ShowDialog(viewModel)
'Exception is thrown about absence of parameterless constructor of MainWindowView
End Sub
我试图在新的、清晰的项目中再次重现这个问题,它可以工作-只需要在IoC容器中注册视图(窗口)的类型,WindowManager就会自动在视图的构造函数中注入所需的依赖项。什么问题?你有错误吗?你的代码看起来像什么?请在错误的方向上发布一个外观。视图模型应该与窗口管理器交互,而不是与视图交互。确实如此,ShowMainWindowView方法可以在任何位置。在我的例子中,它是视图模型的命令方法。在这种情况下,我不确定问题是什么?将窗口管理器作为参数添加到视图模型构造函数中,就像您使用
MainWindowView
和事件聚合器一样。问题是WindowManager无法使用构造函数中有参数的窗口。你明白吗?