WinUI DataGrid (CommunityToolkit.WinUI.UI.Controls) - Resize of height is not working when user shrink or expand column

Anonymous
2024-01-16T03:25:50.7933333+00:00
  <ctWinUI:DataGrid x:Name="DataGrid"
                    AutoGenerateColumns="False"
                    CanUserSortColumns="True"
                    GridLinesVisibility="All"
                    Sorting="DataGrid_Sorting"
                    Grid.Row="1">
      <ctWinUI:DataGrid.Resources>
          <SolidColorBrush x:Key="DataGridColumnHeaderBackgroundBrush"
                           Opacity=".5" />
          <Style TargetType="TextBlock" x:Key="WrapText">
              <Setter Property="TextWrapping" Value="Wrap"/>
          </Style>
      </ctWinUI:DataGrid.Resources>
      <ctWinUI:DataGrid.Columns>
          <ctWinUI:DataGridTextColumn Header="Rank"
                                      Binding="{Binding Rank}"
                                      Tag="Rank" />
          <ctWinUI:DataGridComboBoxColumn Header="Mountain"
                                          Binding="{Binding Mountain}"
                                          Tag="Mountain" />
          <ctWinUI:DataGridTextColumn Header="Height (m)"
                                      Binding="{Binding Height_m}"
                                      Tag="Height_m" />
          <ctWinUI:DataGridTextColumn Header="Range"
                                      Binding="{Binding Range}"
                                      Tag="Range" />
          <ctWinUI:DataGridTextColumn Header="Parent Mountain"
                                      Binding="{Binding Parent_mountain}" ElementStyle="{StaticResource WrapText}"
                                      Tag="Parent_mountain" />
      </ctWinUI:DataGrid.Columns>
  </ctWinUI:DataGrid>


I have set Wrap data for "Parent Mountain" column and if user resize (shrink) column (first snapshot) and then expand column (2nd Snapshot). Datagrid row height is not refreshing based on content and you can see height of column is more even data is less. Could you please help me to fix it? image

image

Windows development | Windows App SDK
{count} votes

1 answer

Sort by: Most helpful
  1. Peter Fleischer (former MVP) 19,341 Reputation points
    2024-01-16T07:16:26.56+00:00

    Hi,
    in WPF DataGrid you can set RowHeight to double.NaN. May be it works in CommunityToolkit.

    <Window x:Class="WpfApp1.Window056"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApp056"
            xmlns:sys="clr-namespace:System;assembly=mscorlib"
            mc:Ignorable="d"
            Title="Window056" Height="450" Width="800">
      <Window.DataContext>
        <local:ViewModel/>
      </Window.DataContext>
        <Grid>
        <DataGrid ItemsSource="{Binding View}" AutoGenerateColumns="False" RowHeight="{x:Static sys:Double.NaN}">
          <DataGrid.Columns>
            <DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
            <DataGridTextColumn Header="LongText" Binding="{Binding LongText}" Width="200">
              <DataGridTextColumn.ElementStyle>
                <Style>
                  <Setter Property="TextBlock.TextWrapping" Value="Wrap" />
                </Style>
              </DataGridTextColumn.ElementStyle>
            </DataGridTextColumn>
          </DataGrid.Columns>
        </DataGrid>
        </Grid>
    </Window>
    
    

    Result: x


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.