Home > Net >  Passing parameters between ViewModels in Dependency Injection
Passing parameters between ViewModels in Dependency Injection

Time:02-10

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:

  •  Tags:  
  • Related