C # Forme generiche di WinForms, delegati nei costruttori vs eventi

1

Al momento ho un'applicazione che ha varie forme che fondamentalmente riguardano la scansione di alcuni tag barcode / RFID e mostra la lista.

Come tale ho alcuni componenti generici e persino una sotto forma generica usata da altre forme.

Fondamentalmente questo modulo contiene:

  • Una barra in alto con alcune etichette su quanti oggetti sono stati scansionati
  • Una ListView personalizzata al centro
  • Una barra in basso con un pulsante "annulla" e "salva".

Attualmente questi moduli accettano i suoi costruttori due delegati, ognuno dei quali viene chiamato quando si fa clic sul pulsante corrispondente nella parte inferiore del modulo.

Facendolo, delegherò interamente l'azione di annullamento / salvataggio e la chiusura del modulo corrente al modulo principale. Si noti che la condizione per il pulsante di salvataggio per chiudere il modulo e salvare i dati cambia a seconda del chiamante.

Questa applicazione è fondamentalmente il mio primo passo nel mondo C #. Conosco events e li uso in altre parti della mia applicazione, ma non sembra corrispondere a questi requisiti specifici. Tuttavia, dato che non l'ho letto / letto molto su C #, non sono sicuro dell'approccio che ho scelto, ma obvisouly non sembra il modo standard per farlo.

Quindi ecco la mia domanda:

  • L'utilizzo dei delegati al posto degli eventi per questo requisito specifico è come dovrebbe essere gestito?
  • A un livello superiore, il mio progetto riguarda le forme generiche chiamate da molte forme specifiche o mi sono perso qualcosa?

Nota: ho un vincolo molto specifico: è per embedded devie con framework compatto (un sottoinsieme del classico NET 3.5 Framework in cui non ho tutte le classi e le classi disponibili non hanno tutti i loro metodi / attributi classici disponibili).

    
posta Walfrat 12.10.2017 - 11:10
fonte

1 risposta

1

I dispositivi WinForm e CE sono alcuni dei bit più arcani del framework .net.

Tuttavia, penso che passare delegati del genere sia un approccio insolito per c # e .net. Non dire che non funzionerà o è male, ma solo che penso che sarebbe più normale avere la forma o il controllo aumentare un evento a cui si lega l'oggetto genitore.

Inoltre, considererei non avere moduli generici e chiamare il codice dal metodo ButtonClicked (). Ovviamente se hai un controllo generico vuoi riutilizzare lotti questo non è un buon metodo. Ma sarebbe il modo "standard, ciao mondo" per WinForms.

    
risposta data 12.10.2017 - 11:23
fonte

Leggi altre domande sui tag