36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using DaSaSo.ViewModel.Commands;
|
|
using DaSaSo.ViewModel.Interface;
|
|
using System.ComponentModel;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Windows.Input;
|
|
|
|
namespace DaSaSo.ViewModel.State.Navigation
|
|
{
|
|
public class Navigator : INavigator, INotifyPropertyChanged
|
|
{
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
private BaseViewModel _currentViewModel;
|
|
public BaseViewModel CurrentViewModel
|
|
{
|
|
get => _currentViewModel;
|
|
set
|
|
{
|
|
_currentViewModel = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public ICommand UpdateViewModelCommand { get; set; }
|
|
|
|
public Navigator(IViewModelAbstractFactory viewModelFactory)
|
|
{
|
|
UpdateViewModelCommand = new UpdateCurrentViewModelCommand(this, viewModelFactory);
|
|
}
|
|
|
|
protected void OnPropertyChanged([CallerMemberName]string propertyName = null)
|
|
{
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
}
|
|
}
|