Lors de l'écriture application WinForms avec une séparation appropriée entre Affichage- et contrôleur/Présentateur fonctionnalité, je me surprends souvent à écrire du code comme ceci:C#/WinForms: Ai-je besoin de IWin32Windows?
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);
//...
}
}
ou d'une autre variante de passage autour de la fenêtre correcte pour ouvrir des sous-boîtes de dialogue .
Je suis souvent tenté d'ignorer les poignées de fenêtre et d'utiliser toujours les méthodes sans paramètre ShowDialog() - qui doivent simplement utiliser la fenêtre active.
Est-ce que quelqu'un a des expériences en utilisant des architectures similaires? Que faire?