2013-03-22 19 views
6

Esiste un modo per assegnare a ciascuna colonna in un oggetto DataGridView una larghezza percentuale della griglia totale? Attualmente sto usando larghezze fisse, ma vorrei dare a una colonna una larghezza del 15%, un'altra una larghezza del 25% e così via in modo che il 100% della tabella sia riempito e ridimensionato con la griglia.Larghezza colonna DataGridView come percentuale

risposta

1

Può utilizzare un convertitore di valori
Questo sottrae un parametro ma è possibile dividerlo per un parametro.

<local:WidthConverter x:Key="widthConverter"/> 

<GridViewColumn Width="{Binding ElementName=lvCurDocFields, Path=ActualWidth, Converter={StaticResource widthConverter}, ConverterParameter=100}"> 



[ValueConversion(typeof(double), typeof(double))] 
    public class WidthConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      // value is the total width available 
      double otherWidth; 
      try 
      { 
       otherWidth = System.Convert.ToDouble(parameter); 
      } 
      catch 
      { 
       otherWidth = 100; 
      } 
      if (otherWidth < 0) otherWidth = 0; 

      double width = (double)value - otherWidth; 
      if (width < 0) width = 0; 
      return width; // columnsCount; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 
    } 
+1

Grazie per il codice di esempio. Sono sicuro che questo sarà usato da qualcuno anche se ho trovato l'altra risposta molto più facile da implementare. Apprezzo il tuo aiuto! –

-3

basta creare file skin. e applicarlo tramite web config

+0

Affinché questa sia una risposta valida, fornire ulteriori dettagli, esempi, collegamenti o qualcosa che giustifichi la risposta. – ethrbunny