wpf - WPF:当第二列内容折叠时,DataGrid 不会扩展以占据 Grid 的两列
问题描述
我有一个有两列的网格,第一列有一个 DataGrid,第二列有另一个网格。当第二个网格的可见性设置为“折叠”时,我希望 DataGrid 扩展以占用全部空间。以下是代码片段:
<Grid Grid.Row="1" HorizontalAlignment="Left" Width="344">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="24"/>
</Grid.ColumnDefinitions>
<DataGrid MaxWidth="344" Grid.Column="0" SelectedItem="{Binding Dummy, Mode=TwoWay}" Background="DarkGray"
ItemsSource="{Binding DummyList}" SelectionMode="Single" AutoGenerateColumns="False" RowHeaderWidth="0" GridLinesVisibility="All">
<DataGrid.Columns>
<DataGridTemplateColumn Header="" Width="35">
<DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="" Width="*" MinWidth="85">
<DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="" Width="*" MinWidth="90" >
<DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="" Width="*" MinWidth="80">
<DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="" Width="*" MaxWidth="25" Visibility="Collapsed">
<DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<Grid Grid.Column="1" Margin="0,1,0,0" Background="DarkGray" Visibility="Collpased">
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
</Grid>
</Grid>
即使我将第二列中网格的可见性设置为折叠,DataGrid 也不会占用整个空间,第二列仍然为空。我是否有错误的期望,如果是/否,我该如何实现这种行为?
解决方案
第二列有一个固定的宽度<ColumnDefinition Width="24"/>
,即使它不包含子元素(如果它们被折叠的话)。
将宽度更改为 Auto<ColumnDefinition Width="Auto"/>
并为子 Grid: 提供必要的宽度<Grid Grid.Column="1" Width="24"
。然后列将对内容可见性做出反应
推荐阅读
- haskell - Haskell中Monad中的“刚性类型变量”问题
- wso2 - WSO2EI 7.x 中缺少 JsonUtil
- regexp-substr - 为什么 Oracle SQL 函数 regexp_substr 不返回所有匹配字符?
- css - 使用伪元素 (::before) 作为跳转链接目标在 CSS 中不起作用
- c# - EF Core 'The DbFunction 'ÉmpContext.fnGetEmployeeEligibility' 在调用表值函数时具有无效的返回类型 'ÉmpMaster''
- html - 如何使用具有不同父级的 CSS 选择器获取最后匹配的元素?
- java - 无法解析模块/未解决的需求 org.eclipse.core.runtime
- git - git rebase --interactive | 重命名路径案例失败
- html - 是所有 URL 都被视为 API 端点,还是仅被视为 api.company.com/...之类的那些?
- python - 具有列表理解的字典