Как избежать тесной связи между CommandName в XAML и ViewModel - PullRequest
5 голосов
/ 18 ноября 2011

У меня несколько представлений, привязанных к одной модели представления. Теперь я вижу тесную связь с именем команды в разных представлениях с помощью ViewModel. Поэтому мне нужно избегать этой тесной связи. Любая помощь будет высоко оценена.

Ура, Саджеш Намбиар

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

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

  • Если View способен уведомить вызывающую беспокойство ViewModel в данном случае, он ссылается на команду по имени команды
  • Если ViewModel может / хочет обрабатывать какую-либо конкретную команду - она ​​предоставляет Команду через открытый интерфейс и регистрирует ее по Имени, обеспечивая также собственную логику обработки команд

Если мы посмотрим на Команды с точки зрения Событий - View способен «вызвать» данную Команду в конкретном случае и выставить это Событие (Команду), указав его Имя (например, показ публичного события), и это вопрос ViewModel, является ли это будет обрабатывать такую ​​команду (подписаться на событие).

0 голосов
/ 18 ноября 2011

почему существует сильная связь?модель представления предоставляет одну команду, и любой, кто хочет, может связываться с ней.Кстати, mvvm не означает, что viewmodel и view не связаны друг с другом.они плохо связаны со связыванием и тесно связаны друг с другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...