diff --git a/DaSaSo.ViewModel/ClientEditViewModel.cs b/DaSaSo.ViewModel/ClientEditViewModel.cs index fc88421..f331e11 100644 --- a/DaSaSo.ViewModel/ClientEditViewModel.cs +++ b/DaSaSo.ViewModel/ClientEditViewModel.cs @@ -35,7 +35,7 @@ namespace DaSaSo.ViewModel private void SaveClient() { _dataService.Update(Model.Id, Model); - renavigator.Renavigate(); + renavigator.Renavigate(new ClientListViewModel(_dataService,_actualProject,renavigator)); } } } diff --git a/DaSaSo.ViewModel/ClientListViewModel.cs b/DaSaSo.ViewModel/ClientListViewModel.cs index 4d7c87a..e8db358 100644 --- a/DaSaSo.ViewModel/ClientListViewModel.cs +++ b/DaSaSo.ViewModel/ClientListViewModel.cs @@ -63,7 +63,7 @@ namespace DaSaSo.ViewModel this.renavigator = renavigator; LoadClient(); 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); //AddNewClientCommand = new RelayCommand(AddNewClient); diff --git a/DaSaSo.ViewModel/Commands/EditClientCommand.cs b/DaSaSo.ViewModel/Commands/EditClientCommand.cs index 62d5b1a..bb64794 100644 --- a/DaSaSo.ViewModel/Commands/EditClientCommand.cs +++ b/DaSaSo.ViewModel/Commands/EditClientCommand.cs @@ -1,4 +1,6 @@ -using DaSaSo.ViewModel.Interface; +using DaSaSo.Domain.Model; +using DaSaSo.Domain.Services; +using DaSaSo.ViewModel.Interface; using System; using System.Collections.Generic; using System.Diagnostics; @@ -11,6 +13,7 @@ namespace DaSaSo.ViewModel.Commands { public class EditClientCommand : ICommand { + private readonly IDataService dataservice; private readonly IActualProject actualProject; private readonly IRenavigator renavigator; private readonly ClientListViewModel clientListViewModel; @@ -19,8 +22,9 @@ namespace DaSaSo.ViewModel.Commands - public EditClientCommand(IActualProject actualProject,IRenavigator renavigator, ClientListViewModel clientListViewModel) + public EditClientCommand(IDataService dataservice, IActualProject actualProject,IRenavigator renavigator, ClientListViewModel clientListViewModel) { + this.dataservice = dataservice; this.actualProject = actualProject; this.renavigator = renavigator; this.clientListViewModel = clientListViewModel; @@ -34,7 +38,7 @@ namespace DaSaSo.ViewModel.Commands public void Execute(object? parameter) { actualProject.SetClient(clientListViewModel.SelectedClient); - renavigator.Renavigate(); + renavigator.Renavigate(new ClientEditViewModel(dataservice,actualProject,renavigator)); } } } diff --git a/DaSaSo.ViewModel/Interface/IRenavigator.cs b/DaSaSo.ViewModel/Interface/IRenavigator.cs index b744d9a..3066d97 100644 --- a/DaSaSo.ViewModel/Interface/IRenavigator.cs +++ b/DaSaSo.ViewModel/Interface/IRenavigator.cs @@ -8,6 +8,6 @@ namespace DaSaSo.ViewModel.Interface { public interface IRenavigator { - void Renavigate(); + void Renavigate(BaseViewModel target); } } diff --git a/DaSaSo.ViewModel/State/Navigation/ViewModelDelegateRenavigator.cs b/DaSaSo.ViewModel/State/Navigation/ViewModelDelegateRenavigator.cs index 23dfa60..0a23d1c 100644 --- a/DaSaSo.ViewModel/State/Navigation/ViewModelDelegateRenavigator.cs +++ b/DaSaSo.ViewModel/State/Navigation/ViewModelDelegateRenavigator.cs @@ -7,20 +7,19 @@ using System.Threading.Tasks; namespace DaSaSo.ViewModel.State.Navigation { - public class ViewModelDelegateRenavigator : IRenavigator where TViewModel : BaseViewModel + public class ViewModelDelegateRenavigator : IRenavigator { private readonly INavigator _navigator; - private readonly CreateViewModel _createViewModel; + - public ViewModelDelegateRenavigator(INavigator navigator, CreateViewModel createViewModel) + public ViewModelDelegateRenavigator(INavigator navigator) { _navigator = navigator; - _createViewModel = createViewModel; } - public void Renavigate() + public void Renavigate(BaseViewModel target) { - _navigator.CurrentViewModel = _createViewModel(); + _navigator.CurrentViewModel = target; } } } diff --git a/DaSaSo.Wpf/App.xaml.cs b/DaSaSo.Wpf/App.xaml.cs index 5f6f276..b581695 100644 --- a/DaSaSo.Wpf/App.xaml.cs +++ b/DaSaSo.Wpf/App.xaml.cs @@ -64,10 +64,9 @@ namespace DaSaSo.Wpf return () => new ClientEditViewModel( services.GetRequiredService>(), services.GetRequiredService(), - new ViewModelDelegateRenavigator( - services.GetRequiredService(), - services.GetRequiredService>() - )); + new ViewModelDelegateRenavigator( + services.GetRequiredService() + )); }); services.AddSingleton>(services => { @@ -78,10 +77,9 @@ namespace DaSaSo.Wpf return () => new ClientListViewModel( services.GetRequiredService>(), services.GetRequiredService(), - new ViewModelDelegateRenavigator( - services.GetRequiredService(), - services.GetRequiredService>() - )); + new ViewModelDelegateRenavigator( + services.GetRequiredService() + )); });