Установить максимальную ширину отображения для столбца в сетке данных WPF

У меня есть сетка данных в WPF, которая генерирует столбцы автоматически. некоторые столбцы имеют ширину больше, чем весь экран, я хочу проверить ширину, и если она больше 500, тогда установите ее на 500, но если она меньше 500, оставьте текущую ширину.

       <DataGrid x:Name="dgLM" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding}" HorizontalAlignment="Stretch" 
              Margin="5" VerticalAlignment="Stretch" IsReadOnly="True" CanUserAddRows="False" AutoGenerateColumns="True" CanUserDeleteRows="False"
              LoadingRow="dg_LoadingRow" AlternatingRowBackground="#FFDAD5D5" 
                AutoGeneratingColumn="dgMain_AutoGeneratingColumn" >
            <!--<DataGrid.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="DarkGray"/>
        </DataGrid.Resources>-->
            <DataGrid.Resources>
                <Style TargetType="{x:Type DataGridCell}">
                    <Style.Triggers>
                        <Trigger Property="DataGridCell.IsSelected" Value="True">
                            <Setter Property="Background" Value="DarkGray" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.Resources>
        </DataGrid>

и код:

    private void dgMain_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
    {
        if (e.PropertyType == typeof(System.DateTime))
            (e.Column as DataGridTextColumn).Binding.StringFormat = "dd/MM/yyyy HH:mm:ss";

        //e.Column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
        if (e.Column.Width > 500)
        {
            e.Column.Width = 500;
        }

    }

ценю любую помощь!

1 ответ

Решение

При работе с шириной столбца в AutoGeneratingColumn следует использовать DataGridLength.

Вы также можете изменить e.Column.MaxWidth, который вместо этого является двойным.

Другие вопросы по тегам