Search code examples
wpfdatagrid

How to remove extra column Datagrid


i have binded itemsource to Datatable for Datagrid . it shows extra columns how to remove it

My code :

<DataGrid Name="dataGrid"  IsReadOnly="True"  VerticalAlignment="Top"
          ItemsSource="{Binding Cus}" AutoGenerateColumns="True"/>

it show extra columns How to remove it ?

Screen shot : enter image description here


Solution

  • Solution 1 :

    Set AutoGenerateColumns="False" and Width="*" for all Columns

     <DataGrid x:Name="dataGrid" IsReadOnly="True" AutoGenerateColumns="False">
        <DataGrid.Columns>
           <DataGridTextColumn Binding="{Binding OrderId}" Header="OrderId" Width="*"/>
           <DataGridTextColumn Binding="{Binding ProductId}" Width="*" Header="ProductId"/>
           <DataGridTextColumn Binding="{Binding UnitPrice}" Width="*" Header="UnitPrice"/>
           <DataGridTextColumn Binding="{Binding Quantity}" Width="*" Header="Quantity"/>
           <DataGridTextColumn Binding="{Binding Discount}" Header="Discount"
                               Width="*"/>
        </DataGrid.Columns>
    </DataGrid>
    

    Solution 2 : You can set like this to achieve your requirement

    <DataGrid HorizontalAlignment="Left" Margin="50,0,0,0" Width="500"
              Name="dataGrid" IsReadOnly="True" VerticalAlignment="Top"
              ItemsSource="{Binding Cus}" AutoGeneratingColumn="AutoGeneratingColumn"/>
    
     void dataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
     {
         e.Column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
     }