Кажется, что если вы собираетесь использовать подход с «выделенным кодом», зачем вообще беспокоиться о триггерах?
Просто установите btn.Background = new SolidColorBrush(Colors.Green);
в обработчике кликов, и все готово.
РЕДАКТИРОВАТЬ:
По сути, ваш триггер шаблона работает, но не так, как вы ожидаете.Если вы провели некоторое изолированное тестирование, вы увидите, что фон становится зеленым, когда вы щелкаете по нему, но сразу же возвращается к исходному цвету.
Лучше всего использовать ToggleButton.Таким образом, вы можете использовать свойство IsChecked, чтобы установить цвет фона.Хитрость здесь в том, чтобы изменить его обратно при нажатии на какой-либо другой переключатель.Вот где приходит ваш MVVM.
Сценарий:
Ваша View-Model будет иметь коллекцию сказать ... "Карты", и каждая карта может иметь свойство для представления, если оно имеетбыл "включен".Теперь, в случае, если вы открыли карту, ваша View-Model должна циклически пройтись по вашей коллекции «Cards» и установить для всех «Card» значение «повернуло» в false, за исключением одной карты, которая «поднимается»конечно.Теперь свяжите свойство ToggleButton.IsChecked со свойством «повернуто» для каждой модели «Карточка», к которой оно привязано.