2011-01-07 27 views
16

alt textPrevent WPF 4.0 Datagrid de Mostrando columna vacía

I tiene una aplicación con una cuadrícula de datos con 1 columna (por ahora). ¿Cómo elimino la segunda columna vacía de la cuadrícula de datos de modo que solo se muestren las columnas con datos en la cuadrícula de datos?

+1

Probablemente quieres establecer Ancho = "*"? – vorrtex

+0

¿Desea que la columna consuma todo el ancho disponible o desea ocultar la "columna vacía"? –

+0

Quiero que la columna consuma todo WIdth disponible –

Respuesta

15

Como vorrtex dijo en un comentario lo mejor que puede hacer es, probablemente, para ajustar el ancho de columna para llenar todo el espacio disponible:

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

Dependiendo del contenedor se utiliza también se puede alinear la rejilla a la izquierda lado, dejando un espacio vacío a su derecha:

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

suerte que es lo que estaba buscando ...

+0

Ancho = "*" hizo el truco –

+0

Su respuesta no funcionó para mí, en cambio usé la siguiente definición de propiedad DataGrid, que funcionó para mí: 'RowHeaderWidth =" 0 "' – Eido95

3

Creo que es necesario establecer AutoGenerateColumns a Falso, y hacer algo como esto:

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

Eso debería hacerlo: p

+0

que era mucho mejor – DDR

1

Si el ancho de una columna es "*" incluso entonces he visto columna vacía a la derecha de la cuadrícula de datos. Para solucionar esto, especifique el ancho de la cuadrícula de datos como "Ancho = 500" en lugar de MinWidth y 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>