1
我正在寻找示例如何以编程方式将DataGrid列宽度更改为Auto,同时忽略列标题中的文本(如果标题内容长度超过最长内容列单元格)。以编程方式将DataGrid列宽度更改为单元格内容的最大大小
我正在寻找示例如何以编程方式将DataGrid列宽度更改为Auto,同时忽略列标题中的文本(如果标题内容长度超过最长内容列单元格)。以编程方式将DataGrid列宽度更改为单元格内容的最大大小
尝试使用属性sizeToCells(从MSDN)
这样的单柱:
grid.Columns[0].Width = new DataGridLength(1, DataGridLengthUnitType.SizeToCells);
而不是设置列的Header
财产XAML标记是这样的:
<DataGrid x:Name="dg">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding}" Header="some very long header some very long header some very long header" />
<DataGridTextColumn Binding="{Binding}" Header="short" />
</DataGrid.Columns>
</DataGrid>
..一旦DataGrid
已被加载,您可以通过编程来设置它:
<DataGrid x:Name="dg" Loaded="dg_Loaded">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding}" />
<DataGridTextColumn Binding="{Binding}" Header="short" />
</DataGrid.Columns>
</DataGrid>
private void dg_Loaded(object sender, RoutedEventArgs e)
{
dg.Columns[0].Width = new DataGridLength(dg.Columns[0].ActualWidth);
dg.Columns[0].Header = "some very long header some very long header some very long header";
}
然后列的宽度将基于单元格内容仅但是不能在报头的长度。
您是否在Windows窗体中使用DataGridView? –
设置DataGrridColum Width =“Auto”不需要在代码隐藏中设置。根据标题大小它将被调整大小 – Ragavan