Witam!

Załóżmy że w pliku App.xaml.cs mamy utworzony lokalny kontener IoC w którym zarejestrowane są interfejsy i klasy. Standardowo uwalniam główną klasę okna MainWindow i aplikacja sobie jakoś już leci. A teraz załóżmy że mamy ViewModelLocator który jest podczepiony do kontekstów w oknach w kodzie XAML. Pojawia się problem pod tytułem: ViewModelLocator nie ma dostępu do IoC kontenera więc w jaki sposób ma przekazywać parametry do uwolnionych ViewModels? Zakładam że każdy ViewModel składa się z:

  • IViewModel1 - interfejs
  • ViewModel1Design - viewModel który jest aktywny w design mode
  • ViweModel1 - viewModel który jest aktywny w czasie pracy aplikacji

I drugie pytanie: co zrobić gdy MainWindow który jest bezpośrednio uwalniany przez kontener ma wiele stron? Czy każdą stronę (tj. UserControl z ViewModelem) muszę przekazać przez parametry konstruktora MainWindow? Wydaje mi się to niepraktyczne ponieważ funkcje z 20 argumentami to imho przegięcie trochę, a tworzenie ich w środku to z kolei nie DI :)

Pozdrawiam!