Проблема реализации шаблона MVVM для приложения - PullRequest
0 голосов
/ 22 мая 2011

Сначала скажу, что я действительно новичок в WPF

У меня есть вопрос, на который я не нашел ни одного ответа в Интернете ..... Некоторые учебные пособия есть, но опять же они простосбивает с толку .....

Вопросы:

1) Можно MVVM Использовать для проектов с ограничением по времени (Ранняя поставка).
2) Как мне сделать мой объект Model(Классы сущностей).
3) Где будет слой доступа к данным.В модели ?? ...
4) Является ли бизнес-логика (Некоторая часть) в VIEW MODEL
5) Самое запутанное из всех ----- Сколько VIEW MODELS Мне нужно сделать?..... Я видел пример приложения в Интернете .... Либо они заканчивают в 1 View Model, либо используют на 1-2 модели больше, чем там Entity Classs ...

Должен ли яиспользуйте каркас для реализации на начальном уровне ... пожалуйста, предложите мне немного ....
Не только я, но и многие мои коллеги также сталкиваются с такими же проблемами ...

1 Ответ

2 голосов
/ 22 мая 2011

Я понимаю MVVM следующим образом:

1) Ваш пользовательский интерфейс привязан к вашей ViewModel.Ваша ViewModel, в свою очередь, оборачивает вашу модель и преобразует ее в удобный для привязки интерфейс.Модели могут быть дружественными к персистентности, но дружественные к персистентности модели не всегда дружественны для пользовательского интерфейса.Идея ViewModel состоит в том, чтобы преодолеть этот пробел и адаптировать модель к тому, с чем пользователь может легко связать пользовательский интерфейс.

2) Ваша модель может быть любой структурой класса-сущности, если вы предпочитаете, или простыми классами (мое предпочтение)).Единственная важная вещь - это то, что он сможет уведомлять вашу ViewModel об изменении его свойств.Поэтому я обычно рекомендую, чтобы класс модели реализовывал INotifyPropertyChanged или что-то подобное.

3) Это ваше дизайнерское решение.Ваш уровень доступа к данным должен быть отделен от модели, но должен взаимодействовать с моделью.См. Принцип единой ответственности.Ваша модель хранит только данные.

4) Бизнес-логика может быть в ViewModel, да, или в контроллерах, которые координируют одну или несколько ViewModel.

5) Обычно вы хотите создать одну ViewModel длятип элемента пользовательского интерфейса.Это может быть довольно детализированным, особенно когда ViewModels содержат другие ViewModels.Например, если у вас есть сетка в вашем пользовательском интерфейсе, у вас может быть ViewModel для всей сетки, а затем другой класс ViewModel для самих строк.Нет ничего необычного в том, чтобы иметь больше ViewModel, чем Models, например, у вас может быть ViewModel для строки сетки и другая ViewModel для представления Details, но они могут отображаться на одну и ту же модель.

Hopeэто помогает!

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