Это вопрос о потоке UI-интерактивного контроля выполнения в приложении .net.
У меня есть приложение для Windows Phone (Silverlight).
Экран пользовательского интерфейса показывает некоторые элементы управления пользователю. Пользователь нажимает кнопку «загрузить аудио», и это вызывает CloudUploadProvider
, чтобы начать загрузку. CloudUploadProvider
в этом случае вызывается моделью представления (или даже я могу направить запрос выполнения через экземпляр класса третьей стороны для корректности, не имеет значения).
A CloudUploadProvider
определяет, запускается ли он впервые, и если он не находит учетные данные для доступа к учетной записи в облаке, он должен попросить пользователя предоставить некоторые из них.
Могу ли я просто вызвать Navigate
на страницу входа в облачную учетную запись из класса CloudUploadProvider
, или лучше (в соответствии с рекомендациями архитектуры) направить запрос навигации пользовательского интерфейса в какой-либо другой класс или даже модель представления который инициировал запрос на загрузку.
Я пытаюсь придерживаться паттерна MVVM, но вопрос, на который я наткнулся, заключается в том, следует ли разрешить классам BL "back-stage" получать прямой доступ к пользовательскому интерфейсу?