2013-08-13 12 views
15

Uso un DataSet per popolare un DataGrid in WPF (C#). Il risultato è:Rimuovere la colonna vuota in un DataGrid WPF

enter image description here

Voglio rimuovere colonna vuota sul lato sinistro. E voglio condividere lo spazio rimanente in colonne. Risultato atteso è:

enter image description here

Il mio codice XAML è:

<Window x:Class="RFID.CareerWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="CareerWindow" Height="356" Width="404"> 
    <Grid> 

     <DataGrid x:Name="dg1" HorizontalAlignment="Left" Margin="25,10,0,0" VerticalAlignment="Top" Height="306" Width="355" EnableRowVirtualization="false" EnableColumnVirtualization="false" FontFamily="2 badr" FontSize="20" FlowDirection="RightToLeft" CanUserAddRows="False" CanUserReorderColumns="False"/> 

    </Grid> 
</Window> 

risposta

33

impostazione statica altezza e la larghezza Evita.

Usa ColumnWidth="*" per condividere lo spazio tra le DataGridColumns

<DataGrid x:Name="dg1" ColumnWidth="*" 
      HorizontalAlignment="Left" VerticalAlignment="Top" Margin="25,10,0,0" 
      EnableRowVirtualization="false" EnableColumnVirtualization="false" 
      FontFamily="2 badr" FontSize="20" FlowDirection="RightToLeft" 
      CanUserAddRows="False" CanUserReorderColumns="False" /> 
+0

Funziona perfettamente! Grazie! Ora, puoi aiutarmi ad allineare tutto il testo (celle e intestazione) al centro? –

+1

Controllare questo post SO per allineare il testo della cella. http://stackoverflow.com/questions/3652318/datagrid-text-alignment – Nitesh

+0

Questo post SO per allineare il contenuto dell'intestazione. http://stackoverflow.com/questions/8810507/how-to-right-align-text-in-a-datagrid-column-header-in-xaml – Nitesh

2

È possibile impostare l'ultima colonna o una colonna del tuo Grid con

<DataGridTextColumn Header="Surname" 
        Width="*" 
        Binding="{Binding Path=Surname,Mode=TwoWay}" IsReadOnly="True"> 
    <DataGridTextColumn.ElementStyle> 
    <Style TargetType="TextBlock"> 
     <Setter Property="HorizontalAlignment" Value="Left" /> 
     <Setter Property="VerticalAlignment" Value="Center" /> 
    </Style> 
    </DataGridTextColumn.ElementStyle> 
</DataGridTextColumn>