这是关于.net应用程序中UI交互式执行控制流程的问题。
我有一个Windows Phone(Silverlight)应用程序。
UI屏幕向用户显示一些控件。用户单击“上传音频”按钮,这会触发CloudUploadProvider
初始化上传。在这种情况下,CloudUploadProvider
由视图模型调用(或者我甚至可以通过第三方类实例路由执行请求以获得正确性,无所谓)。
CloudUploadProvider
确定,如果它是第一次运行,如果它找不到云帐户访问凭据,它应该要求用户提供一些。
我是否可以从Navigate
类调用CloudUploadProvider
到云帐户登录页面,或者将UI导航请求路由到其他类或者更好(建筑最佳实践)甚至是启动上传请求的视图模型。
我试图坚持使用MVVM模式,但我偶然发现的问题是是否应该允许“后台”BL类直接访问UI?
答案 0 :(得分:1)
对您的应用程序CloudUploadProvider
调用Navigate
将仅仅是启动上传的隐藏后果!我建议让CloudUploadProvider
抛出ArgumentException
或引发Event
或直接返回一些错误代码或消息,其中说明“丢失云凭据”。这样,UI可以侦听此消息,并控制缺少凭据时发生的情况。
缺少凭据时发生的情况似乎不是CloudUploadProvider
的业务范围。相反,它应该是您的应用程序使用CloudUploadProvider
。
虽然只是我的两分钱 - 希望这有帮助!