In generale, che è meglio: Griglie annidate o Griglie che includono controlli che utilizzano span di colonne / righe?

1

Questa domanda è stata nella mia mente da quando ho iniziato con WPF e Silverlight. In generale, è meglio usare le griglie annidate o semplicemente impostare le proprietà di estensione di colonne / righe in una singola griglia?

Meglio potrebbe essere misurato in molti modi (non limitato a questi):

  • Più facile da leggere
  • Più facile da gestire e / o estendere
  • Prestazioni migliori
  • Più veloce da implementare / digitare
  • Ad esempio, considera che voglio dividere la mia vista in tre regioni. Una regione si estende per la larghezza della metà superiore della pagina. Le altre due regioni coprono ciascuna metà del fondo della pagina. Proverò a disegnarlo nel testo:

    ---------
    |   1   |
    ---------
    | 2 | 3 |
    ---------
    

    Il cuore della domanda è "quale di queste due soluzioni per l'esempio è migliore e perché?"

    Soluzione 1:

    <Grid>
      <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>
    
      <TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">1</TextBlock>
    
      <TextBlock Grid.Row="1" Grid.Column="0">2</TextBlock>
    
      <TextBlock Grid.Row="1" Grid.Column="1">3</TextBlock>
    </Grid>
    

    Soluzione 2:

    <Grid>
      <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
      </Grid.RowDefinitions>
    
      <TextBlock Grid.Row="0">1</TextBlock>
    
      <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
          <ColumnDefinition />
          <ColumnDefinition />
        </Grid.ColumnDefinitions>
    
      <TextBlock Grid.Column="0">2</TextBlock>
    
      <TextBlock Grid.Column="1">3</TextBlock>
    
      </Grid>
    </Grid>
    

    Mi rendo conto che probabilmente non esiste una risposta "corretta". Entrambe le soluzioni funzionano e non sono molto diverse. La mia speranza è di valutare quale è più spesso fatto nella comunità in generale. Se c'è una convenzione che viene spesso seguita spero di impararla.

        
    posta Drew 16.02.2011 - 17:05
    fonte

    2 risposte

    5

    Ho intenzione di andare con "Dipende".

    Nella semplice situazione che avevi definito, avrei scelto colspan b / c è più facile da leggere.

    Per qualcosa di più complesso vado con un approccio annidato.

    L'app Silverlight su cui sto lavorando in questo momento ha un'interfaccia utente molto complessa e io uso le griglie annidate per aiutarmi a strutturare i dati in modo logico. In questo modo, quando guardo nella mia struttura di controllo, invece di vedere una lista gigante di controlli, vedo:

    Layout principale:

    • Barra in alto
    • Barra sinistra
    • Contenuto Ara

    Ho anche un altro annidamento di griglie in quelle:

    Barra in alto:

    • Info
    • Criteri di ricerca
    • ecc.

    In questo modo è logicamente tracciato in modo da poter trovare rapidamente qualcosa che sto cercando.

    È l'approccio migliore? Forse sì forse no. Un vantaggio che ho trovato era che quando l'interfaccia utente cambiava su di me (la barra sinistra era la barra destra) era un cambiamento veloce. Non ho dovuto cambiare nulla all'interno di quella cripta, ho solo dovuto spostare quella griglia nel layout principale.

        
    risposta data 16.02.2011 - 17:45
    fonte
    1

    Nella mia esperienza limitata, le griglie annidate sono preferite per molte situazioni, perché non ci sono molte interfacce utente che richiedono una "griglia pari", che è ciò che ti dà una singola griglia con più righe e colonne. Una griglia nidificata può darti più flessibilità, specialmente se devi cambiare le cose in futuro.

    Pensaci in questo modo: hai davvero una serie di controlli che devi disporre in blocco? In tal caso, una singola griglia potrebbe essere la migliore. Stai solo cercando di utilizzare le griglie per mantenere un po 'di sanità mentale nella creazione di un'interfaccia utente complessa? Probabilmente stai meglio con le griglie annidate.

    Detto questo, la tua situazione data è così semplice, non vedo alcun motivo per non utilizzare una singola griglia.

        
    risposta data 16.02.2011 - 19:50
    fonte

    Leggi altre domande sui tag