MVVM: одна структура ViewModel для всех видов или отдельная структура ViewModel для вида? - PullRequest
2 голосов
/ 14 октября 2010

Я новичок в MVVM и мне нужна помощь.

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 14 октября 2010

Одна ViewModel на просмотр довольно стандартна.Вы не хотите делиться экземплярами ViewModel, так как они (обычно) с состоянием.

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

1 голос
/ 14 октября 2010

Вам нужно пересоздавать ваши модели представления каждый раз, когда вы получаете доступ к вашим представлениям?

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

Вы также можете взглянуть на первый подход viewmodel, возможно, он больше подходит для вашего приложения.

...