WPF最后一列延伸到DataGrid

时间:2018-06-25 12:51:38

标签: c# .net wpf datagrid

是否有任何方法可以迫使最后一列延伸通过DataGrid WPF的宽度?

由于在某些情况下DataGrid的宽度大于所有累积列的宽度,因此DataGrid的行为就像包含最后一个空列。

<DataGrid Grid.Row="1" ItemsSource="{Binding Params}"  Width="Auto"
         AutoGenerateColumns="True" HeadersVisibility="None">
</DataGrid>

public List<KeyValuePair<string,string>> Params { get; set; }

DataGrid with "an empty column"

1 个答案:

答案 0 :(得分:2)

您可以处理AutoGeneratedColumns事件,并通过编程将最后一列的Width设置为*

private void DataGrid_AutoGeneratedColumns(object sender, EventArgs e)
{
    DataGrid dataGrid = (DataGrid)sender;
    dataGrid.Columns[dataGrid.Columns.Count - 1].Width = new DataGridLength(1, DataGridLengthUnitType.Star);
}

XAML:

<DataGrid Grid.Row="1" ItemsSource="{Binding Params}" 
          Width="Auto" AutoGenerateColumns="True" HeadersVisibility="None"
          AutoGeneratedColumns="DataGrid_AutoGeneratedColumns">
</DataGrid>