Почему вы идете по этому маршруту?Это просто.Если вы замените свою кнопку на кнопку toggleButton, или гиперссылку, или любое другое количество подобных кнопкам элементов управления, вам не нужно обновлять свой «код позади» - это основной принцип шаблона MVVM.В вашем новом toggleButton (или чем-то еще) вы все равно привязываетесь к той же самой Команде.
Например, я создаю проект для клиента, который хочет иметь 2 интерфейса пользователя - один будет принципиально отличаться во всех отношениях, с точки зрения представления.Горизонтальные вкладки против вертикального RadPanelBar (думаю, Аккордеон) для навигации.Оба эти представления могут указывать на одну и ту же viewModel - когда пользователь щелкает вкладку Work Order в View 1, он запускает ту же «WorkOrderCommand», которая запускается в заголовке Work Order на панели панели.
В модели с выделенным кодом вам придется кодировать два отдельных события.Здесь вам нужно только код один.
Кроме того, он позволяет дизайнеру, использующему Blend, создавать любой макет по своему усмотрению.Пока у них есть хуки (элемент управления EventToCommand), мне (как разработчику) было все равно, как будет выглядеть конечный продукт.
Слабая связь невероятно мощна.