Ho un WinForm e poche proprietà impostate su di esso.
ad esempio: nome, indirizzo sono accettati nel modulo.
(molte proprietà a esempio reale)Refactoring Form.ShowDialog() code a MVP
L'implementazione corrente è alquanto simile a
frmName 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..
}
Come si converte questo per un'applicazione basata Winform MVP.
anche bisogno di refactoring trattamento fatto su ShowDialog() al presentatore/Modello
(dunno esattamente dove farlo)?
Inoltre, è necessario evitare di scrivere codice sul modulo stesso. (Vista passiva)
Grazie Tutti.
thx per la risposta. Inoltre si può spiegare la gestione degli errori parte .. (3 ° paragrafo .. "In alcune circostanze dove ....") – Amitd
@Amitd: nell'esempio di codice nella mia risposta, la richiesta dell'utente viene inoltrata al presentatore sopra * chiusura * della finestra di dialogo. Che cosa succede se quella richiesta genera un errore? Ad esempio, lo stesso nome e indirizzo sono già stati elaborati e salvati da qualche parte. Sembra meglio visualizzare l'errore all'interno della finestra di dialogo e consentire all'utente di cambiare il proprio nome o indirizzo, invece di dover aprire una * nuova * finestra di dialogo per riprovare. Puoi farlo passando il relatore nella finestra di dialogo, facendolo fare la richiesta stessa e chiudendolo solo se * non * genera un errore. – Rich
@Rich: Oh ok. Quindi dovrò mantenere il presentatore come una proprietà della vista invece di creare un nuovo presentatore all'interno della vista? – Amitd