/
dOJer113
/
Insect
Обзор
Документация
Войти
/
dOJer113
/
Insect
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
lab_5
ProgressOverlayWindow/ActionCommand.cs
38 строк
1 KB
aleks
lab 5
14 дек 2025, 19:32
14 дек 2025, 19:32
395af5a
Код
Авторство
О чём код?
using System; using System.Windows.Input; namespace ProgressOverlayWindow; /// <summary> /// Простая команда для привязки действий к элементам управления. /// </summary> public sealed class ActionCommand : ICommand { private readonly Action _execute; private readonly Func<bool>? _canExecute; /// <summary> /// Создает новый экземпляр команды. /// </summary> /// <param name="parExecute">Действие для выполнения.</param> /// <param name="parCanExecute">Опциональная функция проверки доступности.</param> public ActionCommand(Action parExecute, Func<bool>? parCanExecute = null) { _execute = parExecute ?? throw new ArgumentNullException(nameof(parExecute)); _canExecute = parCanExecute; } /// <inheritdoc /> public event EventHandler? CanExecuteChanged; /// <inheritdoc /> public bool CanExecute(object? parParameter) => _canExecute?.Invoke() ?? true; /// <inheritdoc /> public void Execute(object? parParameter) => _execute(); /// <summary> /// Уведомляет подписчиков о необходимости перепроверить доступность команды. /// </summary> public void RaiseCanExecuteChanged() => CanExecuteChanged?.Invoke(this, EventArgs.Empty); }