2011-08-25 14 views
5

tengo una cuadrícula de datos con 2 columnas con plantilla:WPF DataGrid dimensionar el contenido de una columna de plantilla

  • la primera incluye un cuadro combinado y lo dejé tamaño para adaptarse a su contenido, ya que esto es a lo sumo uno o dos palabras;

  • el segundo lugar incluye un cuadro de texto donde el texto puede ser algo largo.

Así que aquí me puse MaxWidth=somevalue para evitar su anchura expanda más allá del contenedor de cuadrícula de datos, que hacen lo mismo por su MaxHeight y establezca el texto se ajuste. De todos modos, me gustaría que el cuadro de texto dimensione su ancho para llenar todo el espacio restante en el contenedor de la cuadrícula de datos: si el usuario encoge o agranda la 2da columna, me gustaría que el cuadro de texto se encoja o agrande en consecuencia para que su ancho permanezca en sincronizar El texto se ajustará y las barras de desplazamiento aparecerán según sea necesario.

Ambos controles en la cuadrícula están vinculados a una fuente de datos en un escenario MVVM. ¿Alguien podría dar una pista para permitir que el ancho del cuadro de texto de la plantilla se expanda/contraiga con la columna del contenedor? Aquí está mi código de ejemplo:

<DataGrid ...> 
    <DataGrid.Columns> 
    <!-- 1 --> 
    <DataGridTemplateColumn ...> 
     <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <ComboBox .../> 
     </DataTemplate> 
     </DataGridTemplateColumn.CellTemplate> 
    </DataGridTemplateColumn> 

    <!-- 2: THIS TEXTBOX SHOULD EXPAND/CONTRACT WITH ITS CONTAINER COLUMN --> 
    <DataGridTemplateColumn ...> 
     <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBox TextWrapping="Wrap" 
       MinWidth="400" MaxWidth="700" 
       MaxHeight="400" 
       ScrollViewer.VerticalScrollBarVisibility="Auto" .../> 
     </DataTemplate> 
     </DataGridTemplateColumn.CellTemplate> 
    </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid> 

Respuesta

7

Establecer HorizontalAlignment="Stretch" en su TextBox y conjunto de columnas de su cuadrícula de datos Width="*"

+0

Gracias, yo no sabía sobre el tamaño de la estrella para DataGrid también :) – Naftis

+0

El uso de este 6 años más tarde. Gracias. +1 – BENN1TH

Cuestiones relacionadas