【发布时间】:2010-12-02 14:59:09
【问题描述】:
在编写 WinForms 应用程序并适当分离视图和控制器/演示者功能时,我经常发现自己在编写这样的代码:
public void class SomeView:Form{
private void loadFileButton_Click(object sender, EventArgs e)
{
_loadFileAction.Execute(this);
}
}
public void class LoadFileAction:Action{
public override void Execute(IWin32Window owner){
// ...
string file = _fileSelector.SelectFile(owner);
}
}
public void class FileSelector:IFileSelector{
public override void SelectFile(IWin32Window owner){
OpenFileDialog dialog = new OpenFileDialog();
dialog.ShowDialog(owner);
//...
}
}
或其他一些绕过正确窗口以打开子对话框的变体。
我经常想跳过窗口句柄并始终使用无参数的 ShowDialog() 方法 - 它应该只使用当前活动窗口。
有人有使用类似架构的经验吗?你是做什么的?
【问题讨论】:
标签: c# .net winforms model-view-controller architecture