Загрузить данные модели в фоновом режиме - PullRequest
0 голосов
/ 26 апреля 2011

Я разрабатываю приложение Prism, в котором мне нужно загрузить некоторые данные в модель в фоновом режиме после загрузки приложения. У меня есть отдельное представление, которое скрыто, который будет показывать эти данные через модель представления. Я не хочу увеличивать время загрузки приложения, и при этом я не хочу увеличивать время загрузки представления. Единственное решение, о котором я могу подумать, это вызвать событие Shell Loaded и позволить модели представления или модели подписаться на него.

Это хороший подход или есть лучший подход?

Кроме того, я не уверен, должен ли я вызывать событие Shell Loaded в Run из Bootstrapper или в Shell ViewModel. Как связать перенаправленную команду (например, Loaded) с ICommand

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Я стараюсь избегать обработки подобных событий в загрузчике.Так что присоединение события Loaded представления оболочки к модели представления оболочки - это хороший способ.Единственная причина вызвать это событие в загрузчике - если вам нужен StartupEventArgs (что я иногда и делаю).

Существует несколько способов обработки загруженного события.

  • 100% MVVM используют присоединенное свойство, которое передает событие прямо в ICommand или метод.Пример: как вызвать событие Loaded окна в WPF MVVM?
  • Просто обработайте событие Loaded в коде и вызовите метод / команду Loaded в виртуальной машине оттуда.Это простое и легкое решение для начала работы.
0 голосов
/ 29 апреля 2011

Чтобы сократить время загрузки, вы должны избегать чрезмерной нагрузки на поток пользовательского интерфейса. Возможно, вы захотите изучить TPL или хороший фреймворк под названием ReactiveUI , который предоставляет очень удобный механизм для асинхронной загрузки.

...