xaml里头简单设置
- C# code
<ScrollViewer Grid.Row="1"> <data:DataGrid x:Name="datagrid" CanUserReorderColumns="False" CanUserSortColumns="False" AutoGenerateColumns="True" Background="LightBlue" GridLinesVisibility="All"> </data:DataGrid> </ScrollViewer>
数据是直接绑定的,应该跟显示没有关系
datagrid.ItemsSource = list;
但是最右侧出现了很大的空白,如何设置才能让datagrid的列自动调整占用那部分空白呢?
------解决方案--------------------
用这段代码就可以解决你的问题:
- C# code
void dg_sql_data_SizeChanged(object sender, SizeChangedEventArgs e) { DataGrid myDataGrid = (DataGrid)sender; if (myDataGrid.RenderSize.Width != 0) { double all_columns_sizes = 0.0; foreach (DataGridColumn dg_c in myDataGrid.Columns) { all_columns_sizes += dg_c.ActualWidth; } double space_available = (myDataGrid.RenderSize.Width - 18) - all_columns_sizes; foreach (DataGridColumn dg_c in myDataGrid.Columns) { dg_c.Width = new DataGridLength(dg_c.ActualWidth + (space_available / myDataGrid.Columns.Count)); } } }