我的DataGrid
中有一个包含自定义标题的列。当用户启用CheckBox
(命名:show)时,标题的一部分需要消失。当我启用CheckBox
时,我可以看到文字消失,但宽度没有调整,所以他们仍然保留他们习惯的空间。
<telerik:GridViewDataColumn.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Name" Margin="0,0,35,0" />
<TextBlock Text="Date" Margin="0,0,35,0" Visibility="{Binding Path=IsChecked,Source={x:Reference show}, Converter={StaticResource BooleanToVis}}" />
<TextBlock Text="Address" Margin="0,0,35,0" Visibility="{Binding Path=IsChecked,Source={x:Reference show}, Converter={StaticResource BooleanToVis}}" />
<TextBlock Text="Tel" Margin="0,0,35,0" Visibility="{Binding Path=IsChecked,Source={x:Reference show}, Converter={StaticResource BooleanToVis}}" />
<TextBlock Text="Mobile" Margin="0,0,35,0" />
</StackPanel>
</telerik:GridViewDataColumn.Header>
答案 0 :(得分:1)
您需要自己更改宽度。 DataGrid
不会动态地为您更改列的宽度。
执行此操作的最简单方法可能是在视图的代码隐藏中处理SizeChanged
的{{1}}事件(这纯粹是基于视图或控件的逻辑):< / p>
StackPanel
<强> XAML:强>
private void StackPanel_SizeChanged(object sender, SizeChangedEventArgs e)
{
colX.Width = ((StackPanel)sender).ActualWidth;
}