Domanda

Quando si implementa modello MVP in WinForms spesso trovo vista interfacce mastodontiche con troppe proprietà, setter e getter. Un esempio semplice con una vista con 3 pulsanti e 7 caselle di testo, tutte aventi valore, attivata e le proprietà visibili esposto dalla vista. L'aggiunta di risultati della convalida per questo, e si potrebbe facilmente finire con un'interfaccia con proprietà 40ish. Utilizzando il modello di presentazione, ci sarà un modello con lo stesso numero di proprietà pure.

Come si fa a sincronizzare con facilità la vista e il modello di presentazione, senza dover logica presentatore gonfio che passano tutti i valori avanti e indietro? (Con questo codice presentatore linea 80ish, immaginate con il test presentatore che prende in giro il modello e la vista guarderanno linee like..160ish di codice solo per prendere in giro che il trasferimento.) C'è un quadro per gestire questa situazione senza ricorrere a WinForms associazione dati? (Si potrebbe desiderare di utilizzare diversi punti di vista di visualizzare un WinForms. Secondo alcuni, questa sincronizzazione dovrebbe essere il lavoro presentatori ..) useresti automapper?

Forse im ponendo le domande sbagliate, ma mi sembra di MVP viene facilmente gonfio senza qualche buona soluzione qui ..

Nessuna soluzione corretta

Altri suggerimenti

Questa è solo un'idea, e so dove alcune persone potrebbero non piace -. Ci sono un sacco di cose che si possono fare qui

Se vi trovate con un sacco di codice boilerplate, incapsulare esso.

public class UiField<ContentType>
{
    public bool IsEnabled { get; set; }
    public ContentType Value { get; set; }
    public bool IsVisible { get; set; }
}

Secondo voi, allora:

public interface ISampleView
{
    UiField<bool> IsStaffFullTime { get; set; }
    UiField<string> StaffName { get; set; }
    UiField<string> JobTitle { get; set; }
    UiField<int> StaffAge { get; set; }
    UiField<IList<string>> Certifications { get; set; }
}

Qui si sposta in sulle varie proprietà associate a ciascun campo.

Per inciso, vi suggerisco di non stub queste interfacce a mano per testare - usare un quadro di scherno

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top