Я довольно новичок в WPF / MVVM и пытаюсь понять этот образец. Я изучаю это приложение MVVM http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Автор создал класс Customer
, который хранится в модели Папка
и класс CustomerRepository
, который хранится в папке DataAccess
CustomerRepository
, содержит методы, которые «делают что-то», например static List
Т.е. мы не можем сказать, что CustomerRepository
- это чистый файл модели, это тоже своего рода служебный файл.
С другой стороны, CustomerRepository
хранит важные данные только для чтения List
, и мы знаем, что мы должны хранить такие данные в модели!
Что ж, я бы сказал, что CustomerRepository
смешивает вещи - это файл модели, который содержит внутри себя некоторые служебные методы.
Проблема в том, что экземпляр CustomerRepository
передается ViewModel общедоступной AllCustomersViewModel (CustomerRepository customerRepository)
.Теперь viewModel содержит то, чего не должен, в частности, он может заставить CustomerRepository
перезагрузить материал и т. Д.
На мой взгляд, это снова шаблон MVVM, я думаю, что ViewModel должен содержать только ссылки для файлов модели все служебные классы и методы для управления файлами модели должны быть в других местах .
Прав я или нет? Можно ли передать класс, который предлагает некоторые услуги для модели (может перезагружать / обновлять модель и т. Д.), В ViewModel? Т.е. где должен быть так называемый уровень обслуживания
, можно ли его использовать во ViewModel?