Почему в вашем шаблоне Button
есть еще один Button
? Это не имеет смысла и будет страдать от StackOverflow, если ваш шаблон был применен неявно. Это должен быть Image
, в этом случае ваша команда должна работать.
Чтобы было ясно, что у вас есть внешний Button
, к которому правильно применяется ICommand
. Тем не менее, он отображается как еще один Button
с Image
внутри. Следовательно, когда вы нажимаете Image
, вы фактически нажимаете внутренний Button
, с которым не связано ICommand
. Внешняя кнопка никогда не «видит» щелчок, поэтому она никогда не выполняет команду.
Единственный другой вариант, который я бы не рекомендовал, но должен работать, - это привязка внутренней кнопки к свойствам внешней кнопки:
<ControlTemplate ...>
<Button Command="{TemplateBinding Command}" CommandParameter="{Binding CommandParameter}" ...>
<Image .../>
</Button>
</ControlTemplate>