DI, WPF, Разрешение зависимостей
Подскажите пожалуйста, есть следующая архитектура
IRepository(DBContext context)
IService (IRepository repository)
Дальше WPF
IModel(IService service);
IViewModel(IModel model);
В App.cs, в методе OnStartup, конфигурируется приложение с помощью IoC контейнера.
MainView содержит много окон. Если передавать MainView(IViewModel childParent), то все зависимости разрешаются сразу на момент создания MainView но что, если таких childParent много и сразу все конфигурировать не нужно, а например, только по нажатию кнопок в MainView.
Какие есть подходы?
MainWindow - обычная форма для открытия дочерних окон
public MainWindow()
{
InitializeComponent();
viewModel = new MainWindowViewModel();
DataContext = viewModel;
}
внутри MainWindowViewModel должны открывать дочерние окна со своими IViewModel.
например new View(IViewModel viewModel).Show() IoC контейнер сконфигурирован в OnStartup Application Как передать в MainWindowViewModel IViewModel.
Если через конструктор, то 1) таких интерфейсов будет много 2) даже если окна не нужны их, ViewModels будут сконфигурированы. Это избыточно