0

在此处输入图像描述尝试在 C# 中使用 Datagrids 时遇到一个奇怪的问题。一个额外的列被附加到我的数据网格中,看起来并不整洁。

我遵循了我总是在 WPF 中执行 DataGrid的教程 。我还下载了示例并执行了它们,但正如我在此示例中看到的那样,还附加了一个额外的列。( 图 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>
4

3 回答 3

2

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

<DockPanel >
   <TextBox DockPanel.Dock="Top" Text="Unsecured Devices" IsReadOnly="True"/>
   <DataGrid ColumnWidth ="*" x:Name="unSecure" ItemsSource="{Binding UnsecuredDevices}"/>
</DockPanel>
于 2013-05-20T04:05:20.777 回答
2

它不是一个空列,它只是剩下的空白空间,您可以通过ColumnWidth在 DataGrids 上设置

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

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

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

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

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

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

于 2013-05-20T04:12:02.363 回答
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" />
于 2013-05-20T04:00:04.313 回答