2009-09-15 10 views
4

В настоящее время я работаю над приложением в стиле коричневого поля, он написан с winforms, в качестве подготовки к использованию WPF в более поздней версии, из планов команды, по крайней мере, использовать модель MVCM/Presentation , и связать его с WinForms ...MVVM/Presentation Model With WinForms

я исследовал эту тему, в том числе сообщений в этом месте (которые я очень люблю), когда сводились, главным преимуществом МОФ являются:

  • привязывает элементы управления к свойствам в xaml.
  • команды привязки для управления объектами в режиме просмотра.

первая функция проста в использовании (в коде) или с общим связующим элементом управления, который связывает все элементы управления в форме.

Вторая функция немного сложнее реализовать, но если вы наследуете все свои элементы управления и добавляете свойство команды (которое инициируется внутренним событием, таким как клик), которое привязывается к экземпляру команды в ViewModel ,

Проблемы, я в настоящее время известно, являются:

  • реализации CommandManager, (который будет запускать метод CanInvoke команд, как necessery
  • WinForms поддерживает только один уровень: привязки данных. Источника данных, DataMember МОФ является гораздо более гибким.

я упускаю какие-либо другие основные функции, которые WinForms испытывает недостаток по сравнению с МОФ, при попытке реализовать этот шаблон проектирования?

Я уверен, что многие из вас порекомендуют какой-то шаблон MVP, но модель MVVM/Presentation - это путь для меня, потому что я хочу будущую поддержку WPF.

Заранее благодарен, Erik.

+0

Вы считали, что просто используете ElementHost для добавления нового содержимого WPF в существующее приложение WinForm? –

+0

Я, возможно, сделаю это в какой-то момент ... Я подумал о другом вызове: DataTemplates .. вместо использования datatemlates, я буду использовать usercontrol и привязать его снова к объекту на моей модели viewmodel ..:)) На следующей неделе я начну работу над прототипом, кого интересуют мои результаты? – 2009-09-18 16:09:03

+0

Это сообщение может быть полезно для тех, кто ищет реализацию CommandManager: http://stackoverflow.com/questions/1685088/binding-to-commands-in-winforms – Maciej

ответ

1

Пожалуйста, взгляните на Update Controls .NET. Это библиотека с открытым исходным кодом для Winforms, WPF и Silverlight, которая постоянно обновляет средства управления при изменении данных. Вы можете начать использовать его сейчас для Winforms, а затем перейти к WPF без изменения модели данных или просмотра модели.

К сожалению, это не решит проблему привязки команды Winforms. События с нажатием кнопки не будут переноситься из Winforms в WPF. Но он заботится о проблеме привязки данных.

1

Возможно, вы найдете WAF Windows Forms Adapter. В нем показано, как применить шаблон Model-View-ViewModel (MVVM) в приложении Windows Forms. Реализация адаптера обеспечивает решение для отсутствующей команды в Windows Forms.

Смежные вопросы