Я хочу изменить выбранную высоту строки в DataGrid, пока данные в DataGrid остаются без изменений

При выборе я хочу изменить DataGrid Выбранная высота строки. Я использовал два метода. 1) Я добавил расширитель в DataGrid

<DataGrid x:Name="bookings_dg"  Expander.Expanded="Expander_Expanded"  IsReadOnly="True">
        <DataGrid.RowHeight>30</DataGrid.RowHeight>

Вот мой Expander Event

private void Expander_Expanded(object sender, RoutedEventArgs e)
    {
        if (bookings_dg.RowHeight == 100)
        {
            bookings_dg.RowHeight = 20;
        }
        else
        {
            bookings_dg.RowHeight = 100;
        }

    }

это изменяет размер всех строк вместо определенного.

Затем я попробовал это. Он изменяет высоту, но также увеличивает содержание в нем. Вот моя таблица данных до и после нажатия. Но я хочу изменить высоту только выбранной строки. до img1 после img2

1 ответ

Вам не нужно делать это с кодом позади. И не используйте Scale, если вы не хотите, чтобы он выглядел как увеличительное стекло.

Если все, что вам нужно, это увеличить высоту строки, когда эта строка выбрана, просто добавьте триггер к стилю строки, чтобы при выборе они увеличивали свою собственную высоту.

<DataGrid Name="bookings_dg" IsReadOnly="True">
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Setter Property="Height" Value="30"/>
            <Style.Triggers>   
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Height" Value="50"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
</DataGrid>
Другие вопросы по тегам