【发布时间】:2011-06-05 09:49:11
【问题描述】:
我有一个带有 1 列数据网格的应用程序(目前)。如何从数据网格中删除第二个空列,以便在数据网格中仅显示包含数据的列。
【问题讨论】:
-
可能你的意思是设置 Width="*" ?
-
你是想让列消耗所有可用的Width还是隐藏“空列”?
-
我希望列消耗所有可用的 WIdth
我有一个带有 1 列数据网格的应用程序(目前)。如何从数据网格中删除第二个空列,以便在数据网格中仅显示包含数据的列。
【问题讨论】:
如果一列的宽度是“*”,那么我已经在数据网格的右侧看到了空列。要解决这个问题,请将数据网格的宽度指定为“Width=500”,而不是 MinWidth 和 MaxWidth。
<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="500" MinHeight="180" CanUserAddRows="False" CanUserDeleteRows="false" ItemsSource="{Binding MyList}" SelectedItem="{Binding SelectedValue}">
<DataGrid.Columns>
<DataGridTextColumn Header="Start Date" Binding="{Binding StartDate}" IsReadOnly="True" MinWidth="60" Width="Auto"/>
<DataGridTextColumn Header="End Date" Binding="{Binding EndDate}" IsReadOnly="True" MinWidth="60" Width="*"/>
</DataGrid.Columns>
</DataGrid>
【讨论】:
我认为您需要将AutoGenerateColumns 设置为 False,然后执行以下操作:
<DataGrid AutoGenerateColumns = "False" ItemsSource = "{Binding BindSource}">
<DataGrid.Columns>
<DataGridTextColumn Header = "FishLine ID" Binding = "{Binding ID}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
应该这样做:p
【讨论】:
正如 vorrtex 在评论中所说,最好的办法可能是设置列宽以填充所有可用空间:
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="FishLine ID" Width="*"/>
</DataGrid.Columns>
...
</DataGrid>
根据您使用的容器,您还可以将网格对齐到左侧,在右侧留出空白空间:
<DataGrid HorizontalAlignment="Left">
<DataGrid.Columns>
<DataGridTextColumn Header="FishLine ID"/>
</DataGrid.Columns>
...
</DataGrid>
希望这就是你要找的……
【讨论】:
RowHeaderWidth="0"