2017-02-21 41 views

回答

1

嘗試使用屬性sizeToCells(從MSDN)

這樣的單柱:

grid.Columns[0].Width = new DataGridLength(1, DataGridLengthUnitType.SizeToCells); 
0

而不是設置列的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"; 
} 

然後列的寬度將基於單元格內容僅但是不能在報頭的長度。

相關問題