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 SelectBuildingsiteCommand : AsyncCommandBase { private IActualProject _actualProject; private BuildingsiteListViewModel _buildingsiteListViewModel; public override bool CanExecute(object? parameter) { return _buildingsiteListViewModel.CanSelectBuildingsite; } public SelectBuildingsiteCommand(IActualProject actualProject, BuildingsiteListViewModel buildingsiteListViewModel) { this._actualProject = actualProject; this._buildingsiteListViewModel = buildingsiteListViewModel; _buildingsiteListViewModel.PropertyChanged += _buildingsiteListViewModel_PropertyChanged; } private void _buildingsiteListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(_buildingsiteListViewModel.CanSelectBuildingsite)) OnCanExecuteChanged(); } public override async Task ExecuteAsync(object? parameter) { var s = _buildingsiteListViewModel.SelectedBuildingsite; _actualProject.SetBuildingSite(s); } } }