Пример хорошей практики Silverlight-MVVM - PullRequest
47 голосов
/ 05 января 2009

Я прочитал несколько хороших статей о шаблоне Model-View-ViewModel, и моя команда намеревается внедрить этот шаблон в последнюю версию нашего приложения. Я до сих пор не совсем понимаю все, что происходит вместе, чтобы сделать эту работу. Я хотел бы найти хороший пример этого паттерна, через который я могу работать. Нечто маленькое, очень похожее на то, что Джейсон Долингер делает в своем видео здесь , но мне бы хотелось, чтобы я мог работать самостоятельно в более медленном темпе.

Заранее спасибо за помощь.

Ответы [ 8 ]

28 голосов
/ 06 января 2009

По сути, ViewModel - это оболочка модели. Теперь это может быть не очень полезно :-) Думайте о модели как о данных, с которыми работает ваше приложение, скажем, человек. Теперь у человека есть день рождения, и вы можете захотеть иметь форму для ввода дня рождения этого человека. Предположим, что мы просто используем простой TextBox, дата показывает что-то вроде 01-02-2009 12:00:00 AM. Начнем с того, что нам не нужна часть времени, и, возможно, нам не понравится часть 01-02-2009, поскольку это зависит от настроек вашего региона.

Так вот, ViewModel приходит им. Он оборачивает класс Person и выставляет дату в виде трех целочисленных значений: год, месяц и день. В наборе свойств он пытается построить дату из различных значений и отображает любые ошибки, которые могут возникнуть.

Проще говоря, ViewModel - это обертка Model, специально ориентированная на определенный вид (дисплей). Это устраняет большинство IValueConvertors одновременно.

У Джоша Смита есть хорошее объяснение здесь: http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages и большая дискуссия здесь: http://groups.google.com/group/wpf-disciples/browse_thread/thread/3fe270cd107f184f?pli=1

2 голосов
/ 01 января 2011

Вот еще один, чтобы добавить в список: Простой инструментарий MVVM от Тони Снида (искренне ваш): http://simplemvvmtoolkit.codeplex.com.

Инструментарий состоит из вспомогательных классов, шаблонов элементов Visual Studio и фрагментов кода. В дополнение к самому набору инструментов есть пример приложения с пошаговыми инструкциями по созданию базового приложения Silverlight с использованием шаблона MVVM.

2 голосов
/ 07 июля 2010

Prism 4.0 теперь включает документацию для создания приложений MVVM. Это предназначено для использования библиотек Prism, но концепции работают для шаблона MVVM в целом.

http://compositewpf.codeplex.com/releases

1 голос
/ 17 апреля 2011

Лучшее объяснение ViewModel было дано Скоттом Хансельманом во время его выступления MVC в Европе.

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

1 голос
/ 22 сентября 2010

Я недавно прошел через многие из них, которые выделяются:

Дэн Уолин (ЛИДНУГ):

http://www.lidnug.org/Archives.aspx

Джон Папа (PDC 2010):

http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344

1 голос
/ 01 мая 2010
1 голос
/ 12 января 2009

У Никхила Котари есть пост о том, как использовать этот шаблон с его библиотекой Silverlight.FX. Проверьте это здесь: http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx

0 голосов
/ 05 марта 2011

Взгляните на мою статью о реальной жизни MVVM в Silverlight. Хотя это не для новичков, а ориентировано в основном на опытных разработчиков, работающих над реальными проектами.

http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/

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