2011-08-25 20 views
5

Ho un DataGrid con 2 colonne su modelli:WPF DataGrid dimensionamento contenuto di una colonna su modelli

  • la prima comprende una casella combinata e lasciarlo dimensioni per adattarsi suo contenuto, in quanto questo è al massimo uno o due parole;

  • il secondo include una casella di testo in cui il testo potrebbe diventare un po 'lungo.

Così qui ho impostato MaxWidth=somevalue per evitare la sua larghezza espandersi al di là del contenitore datagrid, faccio lo stesso per la sua MaxHeight, e impostare il testo per avvolgere. Ad ogni modo, vorrei che la casella di testo ridimensionasse la sua larghezza per riempire tutto lo spazio rimanente nel contenitore di dati: se l'utente restringe o ingrandisce la seconda colonna, vorrei che la casella di testo si restringesse o si ingrandisse di conseguenza in modo che la loro larghezza rimanga synch. Il testo verrà inserito e le barre di scorrimento verranno visualizzate come necessario.

Entrambi i controlli nella griglia sono associati a un'origine dati in uno scenario MVVM. Qualcuno potrebbe dare un suggerimento per lasciare che la larghezza della textbox del template si espanda/si contragga con la colonna del contenitore? Qui è il mio codice di esempio:

<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> 

risposta

7

Impostare HorizontalAlignment="Stretch" sul TextBox e set di colonne del DataGrid Width="*"

+0

Grazie, io non conoscevo dimensioni stella per DataGrid troppo :) – Naftis

+0

Utilizzando questo 6 anni più tardi. Grazie. +1 – BENN1TH

Problemi correlati