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

Chirag R. Pandya 0 Reputation points
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 App SDK
Windows App SDK
A set of Microsoft open-source libraries, frameworks, components, and tools to be used in apps to access Windows platform functionality on many versions of Windows. Previously known as Project Reunion.
747 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Peter Fleischer (former MVP) 19,306 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