Предпочтительный способ сделать это - использовать шаблон команды, как вы уже упоминали.
То есть привязать к реализации ICommand через свойство зависимости.
Свойства зависимостей фактически реализуются статическим вспомогательным свойством, которое реализует компоненты зависимости, используемые платформой.
К сожалению, способ, которым MS решила реализовать свойство поддержки, - ну, по меньшей мере, не оптимален.
Он подключается к общедоступному нестатическому свойству, с которым вы связываете в xaml, с помощью жестко закодированной строки ...
Я не помню, где, но я нашел довольно элегантное решение для статических / нестатических отношений, которое использует лямбда-выражение для отображения, таким образом полностью удаляя жестко закодированное, подверженное ошибкам отображение строк.
Если вам все еще это нужно, я могу отправить вам дополнительную информацию по этому вопросу. Вы знаете, где меня найти: -)
Еще одна проблема, на которую вам нужно обратить внимание, - абстрагироваться от реализации представления для поддержания тестируемости.