Navigation zwischen views Funktioniert

This commit is contained in:
HuskyTeufel
2021-09-14 20:37:33 +02:00
parent bbffb270bc
commit f6dd834f34
16 changed files with 210 additions and 98 deletions

View File

@@ -1,6 +1,7 @@
using DaSaSo.Domain.Model;
using DaSaSo.EntityFramework;
using DaSaSo.EntityFramework.Services;
using DaSaSo.ViewModel.Commands;
using DaSaSo.ViewModel.Enums;
using DaSaSo.ViewModel.Interface;
using DaSaSo.ViewModel.State.Navigation;
@@ -17,87 +18,78 @@ namespace DaSaSo.ViewModel
{
public sealed class MainWindowViewModel : BaseViewModel
{
private Client _selectedClient;
private Project _selectedProject;
private Buildingsite _selectedBuildingsite;
private readonly IViewModelAbstractFactory viewModelFactory;
private readonly IActualProject _actualProject;
private string _clientname = "";
private string _projektname = "";
private string _buildingsitename = "";
public INavigator Navigator { get; set; }
public ICommand UpdateCurrentViewModelCommand { get; }
public Project SelectedProject
public string ClientName
{
get => _selectedProject;
get => _clientname;
set
{
if(_selectedProject != value)
if(_clientname != value)
{
_selectedProject = value;
OnPropertyChanged();
}
}
}
public Buildingsite SelectedBuildingsite
{
get => _selectedBuildingsite;
set
{
if(_selectedBuildingsite != value)
{
_selectedBuildingsite = value;
_clientname = value;
OnPropertyChanged();
}
}
}
public Client SelectedClient
public string Projektname
{
get => _selectedClient;
get => _projektname;
set
{
if(_selectedClient != value)
if (_projektname != value)
{
_selectedClient = value;
//SelectedProject = null;
_projektname = value;
OnPropertyChanged();
}
}
}
public MainWindowViewModel(INavigator navigator)
public string Buildingsitename
{
get => _buildingsitename;
set
{
if (_buildingsitename != value)
{
_buildingsitename = value;
OnPropertyChanged();
}
}
}
public MainWindowViewModel(INavigator navigator,IViewModelAbstractFactory viewModelFactory, IActualProject actualProject)
{
this.Navigator = navigator;
Navigator.UpdateViewModelCommand.Execute(EViewType.Home);
Mediator.Subscribe(Enums.EMediator.SELECTEDCLIENT, (tt) =>
{
SelectedClient = (Client)tt;
listProjecte();
});
Mediator.Subscribe(Enums.EMediator.EDITCLIENT, (tt) =>
{
});
Mediator.Subscribe(Enums.EMediator.SHOWCLIENT, (tt) => {
});
this.viewModelFactory = viewModelFactory;
UpdateCurrentViewModelCommand = new UpdateCurrentViewModelCommand(navigator, viewModelFactory);
UpdateCurrentViewModelCommand.Execute(EViewType.Home);
_actualProject = actualProject;
_actualProject.ClientChanged += _actualProject_ClientChanged;
_actualProject.ProjectChanged += _actualProject_ProjectChanged;
_actualProject.BuildingSiteChanged += _actualProject_BuildingSiteChanged;
}
private void listSewerObjects()
private void _actualProject_BuildingSiteChanged(object? sender, EventArgs e)
{
throw new NotImplementedException();
Buildingsitename = _actualProject.AktuellBaustelle.BuildingSiteNumber;
}
private void listBuildingsite()
private void _actualProject_ProjectChanged(object? sender, EventArgs e)
{
throw new NotImplementedException();
Projektname = _actualProject.AktuellProjekt.Name;
}
private void listProjecte()
private void _actualProject_ClientChanged(object? sender, EventArgs e)
{
ClientName = _actualProject.AktuellClient.Firstname;
}
}
}