В предисловии, это моя первая попытка MVVM ... Я ее покупаю, у меня просто небольшие проблемы с ее реализацией.
Я создаю утилиту, помогающую управлять курсом. У меня есть объект COURSE, который содержит несколько свойств и методов, а также коллекцию модулей. Каждый модуль имеет несколько свойств, методов и ссылку на объект PRESENTATION и объект LAB (каждый из них имеет несколько свойств. Сначала я реализовал модель и написал все модульные тесты.
Моя задача сейчас заключается в реализации пользовательского интерфейса (V & VM) ... в частности, части модели представления MVVM.
Пользовательский интерфейс позволяет вам создать курс, просмотреть модули, а затем просмотреть все детали в каждом модуле, где вы можете установить несколько свойств и тому подобное. Для моей модели представления я создал объект для инкапсуляции модели COURSE ... выставив несколько свойств, включая ObserveableCollection модулей курса.
Я столкнулся с несколькими вещами, которые бросают меня за петлю и ищут какую-то помощь:
- Я не уверен, правильно ли я подошел к своей части виртуальной машины, создав нечто, инкапсулирующее модель COURSE. Потому что мне нужно получить доступ к МОДУЛЯМ в курсе, а также к LAB и PRESENTATIONs в объекте COURSE. Значит ли это, что мне нужно создавать виртуальные машины для каждого из них? Похоже, я иду по этому пути неправильно, так как этот подход означает, что я собираюсь инкапсулировать каждый объект в модели, то же самое относится и к каждому методу и свойству?
- При отображении модулей в пользовательском интерфейсе приложения мне нужно перемещать элементы вверх и вниз по порядку. Методы, которые делают это, встроены в модель COURSE. Хитрость заключается в том, что когда я использую эти методы из представления, оно не обновляет представление, потому что объект курсов находится в виртуальной машине, а не в М. сбросить его так же, как окно хостинга (которое является курсом), но это не идеально. Модули являются наблюдаемой коллекцией, но они не будут обновляться, потому что я делаю работу на более низком уровне.
Кажется, я немного ошибаюсь в своей виртуальной машине ... что-то подсказывает мне, что не все из модели должно быть заключено в нее.