How to automatically set grid cells to edit mode

Hi, I am struggling to get the SfDataGrid to automatically change to edit mode when you change cells.  Pressing F2 to start editing took me ages to figure out!

                <sf:SfDataGrid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="FieldsGrid" AutoGenerateColumns="False" ItemsSource="{Binding Path=Fields}" AllowEditing="True"
                               AllowSorting="False" AllowFiltering="False" EditTrigger="OnTap" CurrentCellActivating="FieldsGrid_OnCurrentCellActivating">
                    <syncfusion:SfDataGrid.Columns>
                        <syncfusion:GridTextColumn HeaderText="Field ID" MappingName="ID" AllowEditing="False" />
                        <syncfusion:GridTextColumn HeaderText="Field Name" MappingName="Name" />
                        <syncfusion:GridComboBoxColumn HeaderText="Data Type" MappingName="DataType" ItemsSource="{Binding Path=AvailableDataTypes}" />
                        <syncfusion:GridTextColumn HeaderText="Data Size" MappingName="DataSize" />
                    </syncfusion:SfDataGrid.Columns>
                </sf:SfDataGrid>

        private void FieldsGrid_OnCurrentCellActivating(object sender, CurrentCellActivatingEventArgs args)
        {           
            FieldsGrid.SelectionController.CurrentCellManager.BeginEdit();           
        }

The OnCurrentCellActivating event fires when I change cell, but the BeginEdit call is not putting the grid into edit mode.  I have to either click using the mouse or press F2 to edit.  What am I missing please?

3 Replies

JG Jai Ganesh S Syncfusion Team May 18, 2016 09:23 AM UTC

Hi Craig, 
 
You can go to edit mode when you click the cell by setting the EditTrigger as  OnTap like below, 
 
<Syncfusion:SfDataGrid x:Name="datagrid" 
                               AllowEditing="True" 
                               AllowFiltering="True" 
                               AllowSorting="True"  
                               EditTrigger="OnTap" 
                               AutoGenerateColumns="False" 
                               ItemsSource="{Binding ItemsCollection}" 
                               ShowGroupDropArea="True" 
                               ShowRowHeader="True"/> 
 
 
or if you want to edit the cell while key navigation  by call the BeginEdit() in CurrentcellActivated event like below, 
 
this.datagrid.CurrentCellActivated += datagrid_CurrentCellActivated; 
 
void datagrid_CurrentCellActivated(object sender, CurrentCellActivatedEventArgs args) 
 { 
    if(!datagrid.SelectionController.CurrentCellManager.CurrentCell.IsEditing && args.ActivationTrigger==ActivationTrigger.Keyboard) 
       datagrid.SelectionController.CurrentCellManager.BeginEdit();       
 } 
 
Regards, 
Jai Ganesh S 



CG Craig Greenway May 18, 2016 10:06 AM UTC

Thanks I chose the wrong event (activating rather than activated)


JG Jai Ganesh S Syncfusion Team May 19, 2016 09:35 AM UTC

Hi Craig, 
 
Thank you for the update. 
 
Please let us know if you need further assistance on this. 
 
Regards, 
Jai Ganesh S 


Loader.
Up arrow icon