Какой пакет управления WPF лучше всего подходит для MVVM?

Кажется, что единственный способ по-настоящему оценить набор элементов управления пользовательским интерфейсом - это загрузить пробную версию и потратить много часов на понимание ее ограничений и недостатков дизайна. Однако, имея такой большой выбор, я пытаюсь сократить этот процесс, исключая те, которые не соответствуют ключевому критерию - совместимости с MVVM.

Каков ваш опыт развертывания различных пакетов в проектах, которые используют MVVM и которые, если таковые имеются, специально разработаны с учетом MVVM?


person Tim Coulter    schedule 30.06.2010    source источник
comment
Я не уверен, как элемент управления может быть несовместимым с MVVM, поскольку на самом деле MVVM просто указывает, к какому классу привязан элемент управления для данных. Я предполагаю, что встроенная возможность запускать Command производную от действий пользователя была бы полезна, но помимо этого я не уверен, какие критерии повлияют на это.   -  person Dan Puzey    schedule 30.06.2010
comment
@Dan: в качестве примера (и я уверен, что есть много других) я попытался создать интерфейс MDI с вкладками, используя элементы управления Actipro Docking, но, как описано в ссылке, для этого требуется большое количество выделенного кода, потому что коллекция элементов, представляющая вкладки не привязывается. actiprosoftware.com/Support/Forums/   -  person Tim Coulter    schedule 30.06.2010
comment
Однако это не проблема совместимости с MVVM - это просто контроль над дерьмом!   -  person Dan Puzey    schedule 30.06.2010
comment
@Dan - Возможно, ты прав. Элементы управления, совместимые с MVVM, могут быть не лучшей фразой для использования, мы можем сказать, что элемент управления должен быть совместим с WPF (поверьте мне, я использовал элементы управления WPF, с которыми вы не можете использовать привязку, команды, стили и шаблоны). Если они совместимы с WPF, то использовать с ними MVVM не составит труда.   -  person akjoshi    schedule 01.07.2010


Ответы (1)


Я в основном согласен с Дэном; Как он упомянул, элементы управления должны иметь встроенную возможность запускать Command, в то же время свойства элемента управления должны быть свойствами зависимости, чтобы использовать привязку к ним (я столкнулся с этой проблемой с некоторыми сторонними элементами управления).

Я оценил элементы управления Telerik, Infragistics и Syncfusion для своих проектов и широко использовал Telerik и Syncfusion.

По своему опыту я считаю, что Telerik - это лучше всего разработанные элементы управления и лучше всего подходят для MVVM. Я также видел код Telerik, и они сами используют шаблон MVVM.

Я не использовал Infragistics широко, поэтому не могу сказать, подходят ли они для MVVM или нет, но у них есть хорошие и стабильные элементы управления.

Syncfusion хуже всего, когда дело доходит до WPF, там элементы управления не так хороши, и их будет сложно использовать с MVVM. Они не имеют хорошей конструкции и не очень стабильны.

Один совет, чтобы проверить совместимость -

проверьте (пролистайте) образцы для этих контролей. Если они использовали MVVM в своих сэмплах или широко использовали Commands, Binding и т. Д. В этих сэмплах, то они будут более подходящими для использования с MVVM.

Насколько я помню, я видел MVVM в элементе управления Telerik, где, поскольку образцы Syncfusion не используют большинство функций WPF в этих образцах, они выглядят простыми образцами WinForms, используемыми в приложении WPF.

person akjoshi    schedule 01.07.2010
comment
Спасибо за вашу рекомендацию. Я понимаю, что мой вопрос был несколько субъективным, но я просто пытаюсь избежать затруднительного положения, с которым столкнулся плакат из приведенной ниже ссылки, чья стратегия проекта, похоже, продиктована необходимостью работы с особенно неподходящим набором элементов управления: stackoverflow.com/questions/1510041/ - person Tim Coulter; 01.07.2010
comment
@ Тим - Я понимаю. Я также сталкивался с подобной дилеммой (на самом деле каждый раз, когда вам нужно решить, какие элементы управления сторонней организации использовать). - person akjoshi; 02.07.2010