I have 2 UserControls: LoginControl and AdminControl. if user logged in as admin I need to set CurrentViewModel to AdminControlViewModel and pass active user to that ViewModel.
Registration of services:
services
.AddSingleton<APIHelper>()
.AddSingleton<NavigationStore>()
.AddSingleton<WindowViewModel>()
.AddSingleton<MainWindow>(s => new MainWindow() { DataContext = s.GetRequiredService<WindowViewModel>() })
.AddSingleton<LogInControlViewModel>()
.AddSingleton<LogInControl>(s => new LogInControl() { DataContext = s.GetRequiredService<LogInControlViewModel>() })
.AddSingleton<RegControlViewModel>()
.AddSingleton<RegControl>(s => new RegControl() { DataContext = s.GetRequiredService<RegControlViewModel>() })
.AddSingleton<AdminControlViewModel>()
.AddSingleton<AdminControl>(s => new AdminControl() { DataContext = s.GetRequiredService<AdminControlViewModel>() })
.AddSingleton<EmpControlViewModel>()
.AddSingleton<EmpControl>(s => new EmpControl() { DataContext = s.GetRequiredService<EmpControlViewModel>() })
;
So to get adminCintrolViewmModel I pass it through LogInControlViewModel constructor. And then when I need I want to set my CurrentViewModel to adminCintrolViewmModel and somehow pass my user.
_navigationStore.CurrentViewModel = _adminControlViewModel;
How can I do it and not ruin Dependency Injection
CodePudding user response:
