我正在尝试在C#窗体中实现模型视图展示器模式。我尝试了几种不同的方法,但没有想到这一点。当用户点击文本框时,是否仍然从文本框中“接受”用户输入?如果没有,将数据传递给演示者的典型方法是什么?我可以使用文本框的on_text_changed事件,但后来我对如何验证数据感到困惑。
答案 0 :(得分:1)
答案 1 :(得分:1)
我知道这个帖子太老了但仍然存在。
public interface IProjectView
{
string textBoxText{get;}
}
在ProjectView中实现它
public class ProjectView : IProjectView
{
ProjectPresenter _presenter;
public ProjectView()
{
_presenter = new ProjectPresenter(this);
}
string textBoxText
{
get
{
// Do validation if you want
return textBox1.Text;
}
}
}
class ProjectPresenter
{
IProjectView _view;
public ProjectPresenter(IProjectView view)
{
_view = view;
}
public void AnyMethod()
{
// Access value of textbox as _view.txtTextBoxText
}
}
代码未经过测试,但应该可以正常工作。
关于验证,在ProjectView中实现属性时,请在返回值之前进行验证。
答案 2 :(得分:0)
您需要倾听Leave
event。当文本框失去焦点时,就会发生这种情况;之后,您可以进行验证。