Я начинаю изучать MVVM light и начинаю проектировать мои разные модели viemModels. Я долго искал, чтобы найти то, что я ищу, но я не мог получить это: - (.
Один пример, который я имею, основан на единственной MainViewModel, которая обрабатывается внутри ModelViewLocator. В большинстве случаев у нас будет более одного viewModel, поэтому должны ли все viewModel быть определены в одном файле ViewModelLocator или мне нужно иметь один ViewModelLocator на представление?
Другими словами, нужно ли мне получить это:
MainViewModel -> MainViewModelLocator
PictureViewModel -> PictureViewModelLocator
Хорошо, хорошо, но один вопрос:
скажем, у меня есть 3 модели представления, которые я создал как ViewModel1, 2 и 3
В ViewModelLocation я создал ту же структуру, что и MainViewModel, чтобы создать его экземпляр, и создал главное свойство для доступа к экземпляру Models.
Проблема, которую я обнаружил, заключается в том, что если для каждого из моих видов View, соответствующих каждому viewModels, задан собственный datacontext как ViewModelLocator.ViewModelx, экземпляр представления создается во время разработки, и это создает мне проблемы, если во время конструктора моего представления Мне нужно вызвать внешний класс, который получает данные из службы WCF. Он генерирует «ошибку создания экземпляра».
С другой стороны, если в каждом представлении я выполняю привязку, то НЕ из ViewModelLocator.ViewModelx, а вместо этого как непосредственно ViewModelx, тогда я не получаю эту ошибку и работает лучше.
Так что же делать и логический путь:
1 - Должна ли MainViewModel создавать все другие viewModel?
2 - Должен ли каждый View быть привязан к своей собственной собственности MainStatic в ViewModelLocator?
3 - Создает ли каждый вид свой собственный экземпляр ViewModel?
Я сделал так, что мой View, который возвращает служебные данные из внешнего класса во время создания конструктора ViewModel, работает только в том случае, если я связываю его непосредственно с ViewModel, возникают ли у него проблемы с этим?