Ich habe ein WinForm und einige Eigenschaften, die darauf festgelegt sind.
zum Beispiel: Name, Adresse werden auf dem Formular akzeptiert.
(viele weitere Eigenschaften in tatsächliches Beispiel)Refactoring Form.ShowDialog() Code zu MVP
Die aktuelle Implementierung zu
etwas ähnlich istfrmName frmView = new frmName(); //frmName is WINFORM
frmView.Name= "ABC"; //any valid string or read this from file
frmView.Address="SomeAddress"; //any valid address or read this from file
if (frmView.ShowDialog() == DialogResult.OK)
{
//OK CLICK PROCESS and
// get new values edited by user
string name = frmView .Name;
string address = frmView.Address;
doProcessing(name,address);
}
else{
//Ignore cancel click..
}
Wie konvertiere ich dies zu einer MVP basierend Winform Anwendung.
müssen auch die Verarbeitung auf Showdialog() zum Moderator/Model
(weiß nich genau, wo es zu tun) getan Refactoring?
Vermeiden Sie es auch, Code in das Formular selbst zu schreiben. (Passive Ansicht)
Vielen Dank.
thx für die Antwort. Auch bitte können Sie die Behandlung von Fehlern Teil .. (3. Absatz .. "In einigen Fällen, wo ....") – Amitd
@Amidd: Im Codebeispiel in meiner Antwort wird die Benutzeranforderung an den Referenten weitergeleitet nach * Schließen * des Dialogfelds. Was passiert, wenn diese Anfrage zu einem Fehler führt? Zum Beispiel wurde derselbe Name und dieselbe Adresse bereits verarbeitet und irgendwo gespeichert. Es sieht besser aus, den Fehler in dem Dialogfeld anzuzeigen und es dem Benutzer zu ermöglichen, ihren Name oder ihre Adresse zu ändern, anstatt ein * neues * Dialogfeld zu öffnen, um es erneut zu versuchen. Sie können dies tun, indem Sie den Präsentator in das Dialogfeld eingeben, indem Sie die Anforderung selbst machen und sie nur schließen, wenn sie * nicht zu einem Fehler führt. – Rich
@Rich: Oh ok. Also muss ich den Moderator als eine Eigenschaft der Ansicht behalten, anstatt einen neuen Moderator in der Ansicht zu erstellen? – Amitd