/
solostacktoolkit
/
structurator
Обзор
Документация
Войти
/
solostacktoolkit
/
structurator
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
Аналитика
Безопасность
master
ViewModels/RelayCommand.cs
48 строк
1 KB
Артем Зиновьев
Initial commit: Структуратор 1.0
29 мар 2026, 08:39
29 мар 2026, 08:39
80f0f62
Код
Авторство
О чём код?
using System; using System.Windows.Input; namespace StructureSnap.ViewModels { /// <summary> /// Простая реализация ICommand для привязки команд в WPF. /// </summary> public class RelayCommand : ICommand { private readonly Action<object?> _execute; private readonly Func<object?, bool>? _canExecute; public RelayCommand(Action<object?> execute, Func<object?, bool>? canExecute = null) { _execute = execute ?? throw new ArgumentNullException(nameof(execute)); _canExecute = canExecute; } /// <summary> /// Событие для уведомления UI о изменении доступности команды. /// </summary> public event EventHandler? CanExecuteChanged { add => CommandManager.RequerySuggested += value; remove => CommandManager.RequerySuggested -= value; } public bool CanExecute(object? parameter) { return _canExecute == null || _canExecute(parameter); } public void Execute(object? parameter) { _execute(parameter); } /// <summary> /// Принудительно обновляет состояние команды. /// </summary> public void RaiseCanExecuteChanged() { CommandManager.InvalidateRequerySuggested(); } } }