【问题标题】:C# Datagrid has extra redundant columnC# Datagrid 有额外的冗余列
【发布时间】:2013-05-20 12:18:22
【问题描述】:

我在 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>

【问题讨论】:

  • @IsmetAlkan 是的,但我没有根据它编写代码。我首先编写了自己的代码,然后在网上搜索,发现这家伙还有一个额外的列填充。奇怪。
  • 他做填充吗?我看不到。

标签: c# wpf datagrid


【解决方案1】:

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

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

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

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

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

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

我认为 Star(*) 将适用于您的布局&lt;DataGrid ColumnWidth="*"&gt;

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 您之前的回答以内容为中心。在某种程度上它确实解决了问题。谢谢。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 2017-08-10
      相关资源
      最近更新 更多