Распространение настроек на несколько просмотров - PullRequest
0 голосов
/ 09 октября 2018

Вот моя дилемма:

  1. У меня есть главный вид.У него есть класс Settings.cs, который получает данные с SQL Server
  2. У меня есть много (10+) подпредставлений, некоторые из которых имеют подпредставления.
  3. Сейчас я передаюобъект «Настройки» от моего основного представления до каждого отдельного представления

Мой вопрос может быть немного более «оптимальным», но разве мои ViewModels не должны быть относительно независимыми от основного представления?Или можно передавать все данные настроек каждому представлению, хотя каждое представление будет использовать только небольшую его часть?

Я хотел выполнить настройку, при которой каждая модель представления будет вызывать свой собственный класс настроек /данные, но если у меня есть окно (предположительно, окно настроек, которое будет изменять настройки), как я могу обновить модель представления с обновленными настройками, если это разные экземпляры классов?

Я сделал статические вв прошлом, но это вызывает тесную связь, и я пытаюсь избежать этого.

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Способ, которым я делаю это, состоит в том, чтобы создать класс настроек, который заботится о сериализации / десериализации всех настроек для приложения.Этот класс является статическим или одноэлементным и обеспечивает глобальный потокобезопасный доступ к настройкам.Этот класс также предоставляет событие «SettingsUpdated», которое возникает при каждом изменении настроек (обычно это вызывается при вызове serialize для сохранения обновленных настроек).

Тогда ViewModels может просто получить настройки из этого класса,И если какие-либо из ViewModels необходимо уведомить об изменениях настроек, они могут подписаться на событие «SettingsUpdated» и прочитать обновленные настройки.

0 голосов
/ 09 октября 2018

Считается, что каждая виртуальная машина имеет свои собственные данные, что обычно является общепринятой практикой, поскольку имеет смысл сохранять данные локализованными там, где они необходимы.Но поскольку данные должны расширяться, если виртуальной машине необходим доступ к данным, то такой доступ должен быть предоставлен.Если вы хотите спроектировать систему доступа на ваше усмотрение.

Я работал над системами, в которых основная виртуальная машина или конкретные объекты настроек доступны с использованием статики в экземпляре приложения.Следовательно, весь доступ к необходимым данным глобализируется через приложение.

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