2010-08-09 21 views
9

Ho un controllo DataGrid che è all'interno di un contenitore Grid di layout, e io non riesco a ottenere l'auto-scorrimento sul DataGrid sé al lavoro. Posso avvolgere lo DataGrid intorno a uno ScrollViewer e quindi aggiungere la barra di scorrimento, ma lo scorrimento automatico non funziona.Come abilitare barra di scorrimento/scorrimento su un WPF DataGrid

Così adesso, quando vengono aggiunte nuove voci allo DataGrid, lo DataGrid si espande solo verticalmente. Mi piacerebbe avere la barra di scorrimento verticale abilitata che consente di scorrere gli elementi nello DataGrid quando vengono aggiunti più elementi rispetto alla dimensione verticale originale, invece dell'intera espansione DataGrid. Sicuramente ci deve essere un modo semplice per farlo accadere.

+0

Possibile duplicato di [WPF Datagrid - Non mostra alcuna barra di scorrimento] (https://stackoverflow.com/questions/24015890/wpf-datagrid-not-showing-any-scrollbar) –

risposta

16

Ok, ho capito che questo ... Non ho nemmeno bisogno di avvolgere il datagrid attorno a un ScrollViewer dopo tutto. Tutto quello che dovevo fare è definire l'altezza per il datagrid (usando l'attributo "Altezza") e la barra di scorrimento datagrid appare quando gli oggetti vengono aggiunti che vanno oltre l'altezza. Apparentemente quando l'altezza non è definita, è dinamica e si espande verticalmente quando vengono aggiunti nuovi elementi.

Un'altra cosa da aggiungere a questo era che nel mio datagrid, avevo i dettagli di una riga definiti per ogni riga, quindi quando i dettagli di più righe sono stati espansi, lo scorrimento sarebbe stato abilitato, ma il comportamento della barra di scorrimento era un po ' wacky (come se non stesse scorrendo lo scrolling), e la correzione per farlo rendere lo scrolling regolare era aggiungere il seguente attributo datagrid: ScrollViewer.CanContentScroll = "False" (Sto indovinando che il controllo datagrid è/eredita da un ScrollViewer) e quindi lo scorrimento era scorrevole e simile al normale comportamento di scorrimento previsto.

+13

Suggerirei di stare lontano dall'impostazione esplicita del altezza del Datagrid. Invece, metti il ​​datagrid all'interno di un DockPanel o Grid e lo scorrimento verticale avverrà automaticamente e il tuo Datagrid utilizzerà tutto lo spazio disponibile. – knockando