2011-01-07 16 views
16

alt textPrevenire WPF 4.0 DataGrid dalla Mostrando Vuoto Colonna

Ho un'applicazione con un datagrid con 1 colonna (per ora). Come rimuovo la seconda colonna vuota dal datagrid in modo che solo le colonne con i dati siano visualizzate nel datagrid.

+1

Probabilmente intendete impostare Width = "*"? – vorrtex

+0

Vuoi che la colonna consumi tutta la larghezza disponibile o vuoi nascondere la "colonna vuota"? –

+0

Voglio che la colonna consumi tutto il WIdth –

risposta

15

Come vorrtex detto in un commento la cosa migliore da fare è probabilmente quello di impostare la larghezza della colonna per riempire tutto lo spazio disponibile:

<DataGrid> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="FishLine ID" Width="*"/> 
    </DataGrid.Columns> 
    ... 
</DataGrid> 

A seconda del container si utilizza si potrebbe anche allineare la griglia per la sinistra lato, lasciando uno spazio vuoto alla sua destra:

<DataGrid HorizontalAlignment="Left"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="FishLine ID"/> 
    </DataGrid.Columns> 
    ... 
</DataGrid> 

Speriamo che questo è ciò che stavate cercando ...

+0

Larghezza = "*" ha funzionato il trucco –

+0

La tua risposta non ha funzionato per me, invece ho usato la seguente definizione della proprietà DataGrid, che ha funzionato per me: 'RowHeaderWidth =" 0 "' – Eido95

3

credo che è necessario impostare AutoGenerateColumns su False, e fare qualcosa di simile:

<DataGrid AutoGenerateColumns = "False" ItemsSource = "{Binding BindSource}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header = "FishLine ID" Binding = "{Binding ID}" Width="*"/> 
    </DataGrid.Columns> 
</DataGrid> 

che dovrebbe farlo: p

+0

che era molto meglio – DDR

1

Se la larghezza di una colonna è "*" anche allora ho visto colonna vuota a destra del datagrid. Per risolvere questo, specificare la larghezza di datagrid come "Larghezza = 500" invece di MinWidth e MaxWidth.

<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="500" MinHeight="180" CanUserAddRows="False" CanUserDeleteRows="false" ItemsSource="{Binding MyList}" SelectedItem="{Binding SelectedValue}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Start Date" Binding="{Binding StartDate}" IsReadOnly="True" MinWidth="60" Width="Auto"/> 
     <DataGridTextColumn Header="End Date" Binding="{Binding EndDate}" IsReadOnly="True" MinWidth="60" Width="*"/> 
    </DataGrid.Columns> 
</DataGrid> 
Problemi correlati