C#Datagrid有额外的冗余列

时间:2013-05-20 03:52:18

标签: c# wpf datagrid

enter image description here尝试在C#中使用Datagrids时遇到一个奇怪的问题。我的数据网格附加了一个额外的列,看起来并不整洁。

我按照我总是做DataGrid in WPF的教程。我还下载了示例并执行了它们,但正如我在此示例中看到的那样,还附加了一个额外的列。 (图2和图7)

为什么会这样?我可以摆脱这个多余的列吗?

左侧小组:

    <DockPanel >
        <TextBox DockPanel.Dock="Top" Text="Unsecured Devices" IsReadOnly="True"/>
        <DataGrid x:Name="unSecure" ItemsSource="{Binding UnsecuredDevices}"/>
    </DockPanel>

右小组:

    <DockPanel  Grid.Column="2">
        <TextBox DockPanel.Dock="Top" Text="Secured Devices" IsReadOnly="True" />
        <DataGrid x:Name="Secure" ItemsSource="{Binding SecuredDevices}" />
    </DockPanel>

3 个答案:

答案 0 :(得分:2)

set ColumnWidth ="*" Space是datagrid的未使用空间。您需要设置列宽以填充空间。

<DockPanel >
   <TextBox DockPanel.Dock="Top" Text="Unsecured Devices" IsReadOnly="True"/>
   <DataGrid ColumnWidth ="*" x:Name="unSecure" ItemsSource="{Binding UnsecuredDevices}"/>
</DockPanel>

答案 1 :(得分:2)

它不是一个空列,只留下空白空间,您可以通过在DataGrids上设置ColumnWidth来解决此问题

  

自动度量单位取决于单元格的大小和列标题。

     

像素度量单位以像素表示。

     

SizeToCells 度量单位取决于单元格的大小。

     

SizeToHeader 度量单位取决于列标题的大小。

     

星级度量单位是可用空间的加权比例。

我认为Star(*)适用于您的布局<DataGrid ColumnWidth="*">

答案 2 :(得分:1)

如你所说,教程本身有一个额外的专栏。您可以调整高度和宽度,只是为了节省一天。如:

<DataGrid x:Name="Secure" ItemsSource="{Binding SecuredDevices}" 
          Height="200" Width="500" HorizontalAlignment="Left" Margin="12,21,0,0"
          VerticalAlignment="Top" RowHeight="30" ColumnWidth="100" />