Являются ли реализации команд WPF и Silverlight бесполезными для шаблона M-V-VM (M-V-P)? - PullRequest
2 голосов
/ 02 апреля 2009

Пожалуйста, извините за мое невежество, я только недавно начал кодировать в Silverlight.

Я попытался реализовать шаблон команды в Silverlight и ударил стену. Они говорят, что команды хороши, потому что вы можете записать их в xaml, чтобы вы могли сохранить свой код в чистоте, а также у вас слабая связь между вашим представлением и вашей моделью представления, потому что в представлении нет прямой ссылки на модель представления.

Вы не можете поддерживать чистоту своего кода позади , потому что вы можете привязать только одну команду к элементу управления, и вам нужно решить, какое событие вызовет вашу команду при ее привязке. Если элемент управления имеет 30 событий, вы должны выбрать одно для командования. Остальные 29 будут выполнять другие команды из обработчиков событий из кода.

Слабое связывание может быть достигнуто более простым путем внедрения зависимости , команды добавляют бесполезный уровень косвенности, который не дает ничего лишнего, они только усложняют поддержание вашего кода. Поддерживать ваш код легче, когда вы программируете с интерфейсом и видите точно, какой метод вызывается, тогда когда вам приходится постоянно переходить между определениями команд и вашей моделью представления.

Я что-то пропустил, или команды на самом деле не предназначены для использования в представлении и взаимодействии с моделью представления?

Пожалуйста, смотрите следующий вопрос. Вот почему я не получаю всю шумиху с командами:

Как мне обрабатывать несколько событий для каждого элемента управления с шаблоном команды, используя MVVM в Silverlight?

Ответы [ 3 ]

2 голосов
/ 03 апреля 2009

Посмотрите на Prism (http://prism.codeplex.com) и их инфраструктуру DelegateCommand <>. Это хорошее решение для Silverlight и WPF для создания команд в ViewModel (или Presenter) и привязки непосредственно к нему. Также в Silverlight 3 Поведения могут дать вам тот же синтаксис на основе XAML.

1 голос
/ 02 апреля 2009

SL 2.0 не так мощен, как WPF, вам придется написать немного кода: - (.

Не уверен, что если вы читали эту статью о MVVM и SL, рассказывает об ограничениях команд для SL:

http://msdn.microsoft.com/en-us/magazine/dd458800.aspx

0 голосов
/ 02 апреля 2009

Я считаю, что вы могли бы обмануть свои обработчики событий с помощью прикрепленной модели поведения Пожалуйста, смотрите следующий URL для получения дополнительной информации:

http://www.codeproject.com/KB/WPF/AttachedBehaviors.aspx

...