如何删除多余的列Datagrid [英] How to remove extra column Datagrid

查看:164
本文介绍了如何删除多余的列Datagrid的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将itemsource绑定到Datatable for Datagrid。它显示了多余的列



我的代码:

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

它显示多余的列如何删除它?



屏幕截图:

解决方案

解决方案1:



设置 AutoGenerateColumns =对于所有列都为False Width = *

 < DataGrid x:Name = dataGrid IsReadOnly = True AutoGenerateColumns = False> 
< DataGrid.Columns>
< DataGridTextColumn Binding = {Binding OrderId}标题= OrderId宽度= * />
< DataGridTextColumn Binding = {Binding ProductId} Width = * Header = ProductId />
< DataGridTextColumn Binding = {Binding UnitPrice} Width = * Header = UnitPrice />
< DataGridTextColumn Binding = {绑定数量}宽度= *标题= Quantity />
< DataGridTextColumn Binding = {绑定折扣}标头=折扣
Width = * />
< /DataGrid.Columns>
< / DataGrid>

解决方案2:
您可以进行以下设置:您的要求

 < DataGrid Horizo​​ntalAlignment = Left Margin = 50,0,0,0 Width = 500 
Name = dataGrid IsReadOnly = True VerticalAlignment = Top
ItemsSource = {Binding Cus} AutoGenerateColumns = True />


this.dataGrid.AutoGeneratingColumn + = dataGrid_AutoGeneratingColumn;

void dataGrid_AutoGeneratingColumn(对象发送者,
DataGridAutoGeneratingColumnEventArgs e)
{
e.Column.Width = new DataGridLength(1,DataGridLengthUnitType.Star);
}


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 :

解决方案

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}" AutoGenerateColumns="True"/>


 this.dataGrid.AutoGeneratingColumn += dataGrid_AutoGeneratingColumn;

 void dataGrid_AutoGeneratingColumn(object sender, 
                                    DataGridAutoGeneratingColumnEventArgs e)
 {
     e.Column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
 }

这篇关于如何删除多余的列Datagrid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆