2016-01-26 3 views
0

У меня есть несколько моделей для просмотра различных частей моего тестового приложения.Доступ к одной модели просмотра от другого

Модель одного вида предназначена для пользовательских настроек (каталог по умолчанию, SQL Server, база данных SQL и т. Д.) Под названием MainSettingsViewModel. Он содержит экземпляр модели MainSettings, который содержит сведения о конфигурации.

Другая модель просмотра содержит список компьютеров (с информацией, такой как ComputerName, ComputerDatabase, время синхронизации компьютера и т. Д.) В ObservableCollection.

Еще один содержит подробную информацию о сетевых устройствах (имя, местоположение IP и т. Д.).

Теперь мне нужно выполнить задачи, используя ВСЕ приведенную информацию из этих разрозненных моделей. Например, я хочу выполнить ping каждого сетевого устройства в модели представления NetworkDevices и отправить результаты в файл в модели представления MainSettings, а затем обмениваться данными через каждую модель компьютера и выполнить некоторые тесты.

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

Как должны мои модели просмотра взаимодействовать друг с другом?

+0

Я советую вам читать больше в шаблоне MVVM, прежде чем запускать проект. Вы, очевидно, путаете шаблон с каким-то объектным или базовым классом, нет «нескольких MVVM», у вас либо есть ViewModel, Model (как слой или как объект), так и View. «Модель» также включает в себя вашу бизнес-логику, то есть услуги и репозитории, а не только классы POCO, описывающие вашу структуру данных. – Tseng

+0

Спасибо Уилу и Ценгу, терминология, очевидно, имеет гораздо больший смысл, когда вы так говорите. Я попробую и еще кое-что узнаю, когда пойду. –

ответ

0

Каждый вид Модель будет нужна ссылка на любой другой Просмотр моделей, которые нужны для общения с

Если у вас есть «Main» модель представления может создать экземпляр другие модели просмотра, как это нуждается в них, и пропуск ссылку на его я в конструкторе для них. Эти виртуальные машины могут сохранять эту ссылку от конструктора в частном поле и при необходимости называть общедоступные методы.

Смежные вопросы