using DaSaSo.Wpf.ViewModel.Interface; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DaSaSo.Wpf.ViewModel.Commands { public class SelectProjectCommand : AsyncCommandBase { private readonly IActualProject _actualProject; private readonly ProjectListViewModel _projectListViewModel; public override bool CanExecute(object? parameter) { return _projectListViewModel.SelectedProject != null; } public SelectProjectCommand(IActualProject actualProject, ProjectListViewModel projectListViewModel) { _actualProject = actualProject; _projectListViewModel = projectListViewModel; _projectListViewModel.PropertyChanged += _projectListViewModel_PropertyChanged; } private void _projectListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(_projectListViewModel.CanSelectProject)) OnCanExecuteChanged(); } public override async Task ExecuteAsync(object? parameter) { var s = _projectListViewModel.SelectedProject; _actualProject.SetProject(s); } } }