Вопрос

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

Заранее благодарим за помощь.

Это было полезно?

Решение

По сути, 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 и большое обсуждение здесь: < a href = "http://groups.google.com/group/wpf-disciples/browse_thread/thread/3fe270cd107f184f?pli=1" rel = "noreferrer"> http://groups.google.com/group/wpf- ученики / browse_thread / нить / 3fe270cd107f184f? пли = 1

Другие советы

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

http://compositewpf.codeplex.com/releases

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

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

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

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

Дэн Валин (LIDNUG):

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

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

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

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

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

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

http: //alexburtsev.wordpress .com / 2011/03/05 / MVVM-шаблон-в-и-Silverlight-МОФ /

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top