【发布时间】:2014-09-18 12:52:23
【问题描述】:
https://github.com/brianchance/MvvmCross-UserInteraction 是一个非常不错的插件,用于显示跨平台警报!
但是对于这个问题,我们是否可以假设它不能使用 UIAlertView(或其他平台上的其他顶级 MessageBox 类型调用)但需要在屏幕的给定子部分中显示消息(即在 iPhone 上你需要为插件提供一个 UIView,它将用于在其中显示消息)。
那么,您将如何设置它以便 ViewModel 知道将哪个 View 用作其显示容器?
作为一个具体的例子,如果我想要一个错误服务,那么 -
public interface IErrorPFService
{
void Show();
void Hide();
void SetErrors(List<Error> errors);
}
我为它创建了一个特定于平台的实现。
如果我将它注入到我的 ViewModel 中以便它可以控制错误显示/隐藏/设置我如何告诉它我希望我的错误显示在其中的 UIView(或等效项)?
我能否将 IErrorPFService 字段公开为公共属性并执行 -
MyViewModel.ErrorPFService = new ErrorPFService(View);
在我的 ViewDidLoad ...
或者这与 Mvvm 实践耦合不正确?
【问题讨论】: