我希望实现MVP模式。我有一个用户控件,其中包含一些文本框,当我将其放入表单中时,我会从用户控件中调用一个方法来填充文本框。但在MVP模式下,我不知道如何访问usercontrol1.fill()
。您有任何示例可以帮助我吗?
这是模式的一个示例实现。Presenter只知道接口有一个show方法。Presenter调用它,但只有表单(也称为View)实现了如何显示表单。
public interface IMyFormView {
void Show();
}
public class MyForm : IMyFormView {
public MyForm() {
var presenter = new MyFormPresenter(this);
presenter.Init();
}
public void Show() {
usercontrol1.fill();
}
}
public class MyFormPresenter
{
private IMyView _view;
public MyFormPresenter(IMyView view) {
_view = view;
}
public void Init() {
_view.Show();
}
}
如果您需要将数据传递到视图中,那么可以通过Show
方法传递一个视图模型或在视图上设置自定义属性。
_view.Show()
,然后填充您的控件。 - Dennis Traub