C#C
C#8mo ago
smimashen

✅ enable single-click cell editing in Avalonia DataGrid

Hi all,

In my Avalonia UI DataGrid, clicking on any cell currently selects the entire row, and I have to click the cell one more time before I can start typing.

I'd like to achieve:
  1. After a single click on the cell, the user should be able to immediately start typing without any additional clicks.
    (It's okay to disable full-row selection because we don't need it.)
Is there a built-in property or a recommended workaround to achieve single-click cell editing without row selection?

Thanks in advance!

The Column that should allow input:
<DataGridTextColumn Header="SplitLength" 
                    Binding="{Binding SplitLength}" 
                    IsReadOnly="False" 
                    Width="1*" 
                    Tag="SplitLength"/>


The DataGrid:
<DataGrid Name="Table" ItemsSource="{Binding PartsFiltered}"
              CanUserReorderColumns="False"
              CanUserResizeColumns="True"
              CanUserSortColumns="True"
              GridLinesVisibility="All"
              FontSize="5"
              BorderThickness="1" BorderBrush="Gray"
              CellEditEnding="Table_CellEditEnding"
              CellPointerPressed="Table_OnCellPointerPressed">


current code behind for "CellPointerPressed":
private void Table_OnCellPointerPressed(object? sender, DataGridCellPointerPressedEventArgs e)
        {
            // only for the SplitLength column
            if (e.Column is DataGridTextColumn textColumn &&
                textColumn.Tag?.ToString() == "SplitLength")
            {
                // i guess i need to do something here?
            }
        }
Was this page helpful?