Projekte können erstellt und geladen werden

This commit is contained in:
2023-03-30 20:56:21 +02:00
parent e5214e44c3
commit 70bba66df3
32 changed files with 1050 additions and 93 deletions

View File

@@ -0,0 +1,30 @@
using Shared.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SewerStammGen.WPF.ViewModel.State
{
internal class ActualState : IActualState
{
public int ProjektID { get; private set; }
public void SetProjekt(Projekt projekt, bool notification = true)
{
ProjektID = projekt.Id;
if(notification)
{
OnProjektChanged();
}
}
public event EventHandler? ProjektChanged;
private void OnProjektChanged()
{
ProjektChanged?.Invoke(this, new EventArgs());
}
}
}

View File

@@ -0,0 +1,18 @@
using Shared.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SewerStammGen.WPF.ViewModel.State
{
public interface IActualState
{
event EventHandler? ProjektChanged;
int ProjektID { get; }
void SetProjekt(Projekt projekt, bool notification = true);
}
}

View File

@@ -0,0 +1,25 @@
using SewerStammGen.WPF.Interface.Navigator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SewerStammGen.WPF.ViewModel.State.Navigation
{
internal class ViewModelDelegateRenavigator<TViewModel> : IRenavigator where TViewModel : BaseViewModel
{
private readonly IMainWindowNavigator _navigator;
private readonly CreateViewModel<TViewModel> _createViewModel;
public ViewModelDelegateRenavigator(IMainWindowNavigator navigator, CreateViewModel<TViewModel> createViewModel)
{
_navigator = navigator;
_createViewModel = createViewModel;
}
public void Renavigate()
{
_navigator.CurrentViewModel = _createViewModel();
}
}
}