MVVM узнать, какая кнопка нажата

198
21 мая 2021, 09:30

Я создаю во вью ItemsControl, который содержит в себе структуру UniformGrid. ItemTemplate у него - набор кнопок, которые генерируются на основе ObservableCollection (так как количество этих кнопок динамически изменяется). Реализация ICommand написана следующим образом:

class ActionCommand : ICommand
{
    private readonly Action _execute;
    private readonly Predicate<object> _canExecute;
    public event EventHandler CanExecuteChanged
    {
        add { CommandManager.RequerySuggested += value; }
        remove { CommandManager.RequerySuggested -= value; }
    }
    public ActionCommand(Action execute, Predicate<object> canExecute=null)
    {
        _execute = execute ?? throw new ArgumentException();
        if (canExecute != null)
            _canExecute = canExecute;
    }
    public bool CanExecute(object parameter)
    {
        return _canExecute == null || _canExecute(parameter);
    }
    public void Execute(object parameter)
    {
        _execute();
    }
}

То есть в данном примере мы не можем посылать в команду параметр.

Так как у нас ItemsControl, то и SelectedItem у него нет. Но мне нужно знать, какая кнопка вызвала команду, чтобы конкретно у этой кнопки изменить свойства (например - покрасить в другой цвет). Как это можно сделать?

READ ALSO
Искажается изображение

Искажается изображение

Всем доброго времени сутокПодскажите пожалуйста, почему используя код приведенный ниже (Перерисовка изображений формата PCX в Png) некоторые...

110
Поменять Image.Source в WPF

Поменять Image.Source в WPF

Я делаю приложение с WPFВ форме есть кнопка для запуска exe файла, который меняет фотографию photo

108
Button ContextMenu Styling in wpf

Button ContextMenu Styling in wpf

Я пытаюсь присвоить стиль для ContextMenu, чтоб было похоже на интерфейс Дискорда

201
Не получается запретить доступ не авторизованным пользователям на страницу

Не получается запретить доступ не авторизованным пользователям на страницу

хочу запретить доступ не авторизованным пользователям на страницу indexphp и если пользователь пишет в адресной строке /index

113