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