Es sieht aus wie Caliburn.Micros WindowManager haben Problem mit WPF Windows, die Konstruktor Parameter haben, obwohl der Typ dieses Parameters in Caliburn.Micro IoC registriert ist. Gibt es eine bessere Möglichkeit, den benötigten Parameter in Window zu setzen, als den stinkenden Service Locator IoC.Get(Of T)
im Konstruktor zu verwenden?Caliburn.Micro WindowManager und Window Konstruktor Parameter
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
Welches Problem? Erhalten Sie einen Fehler? Wie sieht dein Code aus? Bitte posten Sie ein [minimales, vollständiges, überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) –
Blick in die falsche Richtung. Ihr Ansichtsmodell sollte mit dem Fenstermanager und nicht mit der Ansicht interagieren. –
Sicher ist, dass ShowMainWindowView-Methode überall sein kann. In meinem Fall ist es in der Befehlsmethode des Ansichtsmodells. –