Это довольно обычная практика, когда и View, и ViewModel ссылаются на одни и те же имена команд, это похоже на общий протокол / общедоступный интерфейс. Посмотрите на это с другой точки зрения, имя Comamnd похоже на открытый интерфейс, который поддерживается обеими сторонами - View и ViewModel. Так
- Если View способен уведомить вызывающую беспокойство ViewModel в данном случае, он ссылается на команду по имени команды
- Если ViewModel может / хочет обрабатывать какую-либо конкретную команду - она предоставляет Команду через открытый интерфейс и регистрирует ее по Имени, обеспечивая также собственную логику обработки команд
Если мы посмотрим на Команды с точки зрения Событий - View способен «вызвать» данную Команду в конкретном случае и выставить это Событие (Команду), указав его Имя (например, показ публичного события), и это вопрос ViewModel, является ли это будет обрабатывать такую команду (подписаться на событие).