Dependencyinjection entfernt bei renavigator

This commit is contained in:
HuskyTeufel
2021-09-15 17:31:59 +02:00
parent e22f1eded2
commit 00718f9821
6 changed files with 21 additions and 20 deletions

View File

@@ -35,7 +35,7 @@ namespace DaSaSo.ViewModel
private void SaveClient() private void SaveClient()
{ {
_dataService.Update(Model.Id, Model); _dataService.Update(Model.Id, Model);
renavigator.Renavigate(); renavigator.Renavigate(new ClientListViewModel(_dataService,_actualProject,renavigator));
} }
} }
} }

View File

@@ -63,7 +63,7 @@ namespace DaSaSo.ViewModel
this.renavigator = renavigator; this.renavigator = renavigator;
LoadClient(); LoadClient();
SelectCommand = new SelectClientCommand(actualProject, this); //= new RelayCommand(SelectClient, () => SelectedClient != null); SelectCommand = new SelectClientCommand(actualProject, this); //= new RelayCommand(SelectClient, () => SelectedClient != null);
EditCommand = new EditClientCommand(actualProject,renavigator,this); EditCommand = new EditClientCommand(_dataService,actualProject,renavigator,this);
//EditClientCommand = new RelayCommand(EditClient, () => SelectedClient != null); //EditClientCommand = new RelayCommand(EditClient, () => SelectedClient != null);
//AddNewClientCommand = new RelayCommand(AddNewClient); //AddNewClientCommand = new RelayCommand(AddNewClient);

View File

@@ -1,4 +1,6 @@
using DaSaSo.ViewModel.Interface; using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.ViewModel.Interface;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
@@ -11,6 +13,7 @@ namespace DaSaSo.ViewModel.Commands
{ {
public class EditClientCommand : ICommand public class EditClientCommand : ICommand
{ {
private readonly IDataService<Client> dataservice;
private readonly IActualProject actualProject; private readonly IActualProject actualProject;
private readonly IRenavigator renavigator; private readonly IRenavigator renavigator;
private readonly ClientListViewModel clientListViewModel; private readonly ClientListViewModel clientListViewModel;
@@ -19,8 +22,9 @@ namespace DaSaSo.ViewModel.Commands
public EditClientCommand(IActualProject actualProject,IRenavigator renavigator, ClientListViewModel clientListViewModel) public EditClientCommand(IDataService<Client> dataservice, IActualProject actualProject,IRenavigator renavigator, ClientListViewModel clientListViewModel)
{ {
this.dataservice = dataservice;
this.actualProject = actualProject; this.actualProject = actualProject;
this.renavigator = renavigator; this.renavigator = renavigator;
this.clientListViewModel = clientListViewModel; this.clientListViewModel = clientListViewModel;
@@ -34,7 +38,7 @@ namespace DaSaSo.ViewModel.Commands
public void Execute(object? parameter) public void Execute(object? parameter)
{ {
actualProject.SetClient(clientListViewModel.SelectedClient); actualProject.SetClient(clientListViewModel.SelectedClient);
renavigator.Renavigate(); renavigator.Renavigate(new ClientEditViewModel(dataservice,actualProject,renavigator));
} }
} }
} }

View File

@@ -8,6 +8,6 @@ namespace DaSaSo.ViewModel.Interface
{ {
public interface IRenavigator public interface IRenavigator
{ {
void Renavigate(); void Renavigate(BaseViewModel target);
} }
} }

View File

@@ -7,20 +7,19 @@ using System.Threading.Tasks;
namespace DaSaSo.ViewModel.State.Navigation namespace DaSaSo.ViewModel.State.Navigation
{ {
public class ViewModelDelegateRenavigator<TViewModel> : IRenavigator where TViewModel : BaseViewModel public class ViewModelDelegateRenavigator : IRenavigator
{ {
private readonly INavigator _navigator; private readonly INavigator _navigator;
private readonly CreateViewModel<TViewModel> _createViewModel;
public ViewModelDelegateRenavigator(INavigator navigator, CreateViewModel<TViewModel> createViewModel) public ViewModelDelegateRenavigator(INavigator navigator)
{ {
_navigator = navigator; _navigator = navigator;
_createViewModel = createViewModel;
} }
public void Renavigate() public void Renavigate(BaseViewModel target)
{ {
_navigator.CurrentViewModel = _createViewModel(); _navigator.CurrentViewModel = target;
} }
} }
} }

View File

@@ -64,10 +64,9 @@ namespace DaSaSo.Wpf
return () => new ClientEditViewModel( return () => new ClientEditViewModel(
services.GetRequiredService<IDataService<Client>>(), services.GetRequiredService<IDataService<Client>>(),
services.GetRequiredService<IActualProject>(), services.GetRequiredService<IActualProject>(),
new ViewModelDelegateRenavigator<HomeViewModel>( new ViewModelDelegateRenavigator(
services.GetRequiredService<INavigator>(), services.GetRequiredService<INavigator>()
services.GetRequiredService<CreateViewModel<HomeViewModel>>() ));
));
}); });
services.AddSingleton<CreateViewModel<HomeViewModel>>(services => services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
{ {
@@ -78,10 +77,9 @@ namespace DaSaSo.Wpf
return () => new ClientListViewModel( return () => new ClientListViewModel(
services.GetRequiredService<IDataService<Client>>(), services.GetRequiredService<IDataService<Client>>(),
services.GetRequiredService<IActualProject>(), services.GetRequiredService<IActualProject>(),
new ViewModelDelegateRenavigator<ClientEditViewModel>( new ViewModelDelegateRenavigator(
services.GetRequiredService<INavigator>(), services.GetRequiredService<INavigator>()
services.GetRequiredService<CreateViewModel<ClientEditViewModel>>() ));
));
}); });