Articles in this section
Category / Section

How to get the row index of a row in SfDataGrid when using GridTemplateColumn?

1 min read

SfDataGrid provides various resolving methods to resolve the row index of grid rows based on certain criteria. The actual RowIndex of a row can be resolved by using the ResolveToRowIndex(recordRowIndex) method in SfDataGrid.

The RowIndex of a row can be obtained from GridTemplateColumn by retrieving the record index of the row using the bound data from its BindingContext and passing the recordRowIndex to the ResolveToRowIndex() method.

 MainPage.Xaml

<sfgrid:GridTemplateColumn HeaderText="ShipCity" MappingName="ShipCity">
  <sfgrid:GridTemplateColumn.CellTemplate>
    <DataTemplate>
      <Button Clicked="button_Clicked" WidthRequest="120" Text="{Binding ShipCity}"/>
    </DataTemplate>
  </sfgrid:GridTemplateColumn.CellTemplate>
</sfgrid:GridTemplateColumn>

 

MainPage.cs

public partial class MainPage : ContentPage
{
     public MainPage()
     {
         InitializeComponent();
     }
     private void button_Clicked(object sender, EventArgs e)
     {
          var button = sender as Button;
          var record = button.BindingContext as OrderInfo;
          var recordRowIndex = viewModel.OrderInfoCollection.IndexOf(record);
          var rowIndex = sfGrid.ResolveToRowIndex(recordRowIndex);
     }
}

 

Note:

RowIndex of the row can also be accessed by using GridTapped, GridDoubleTapped and GridLongPressed events. When using complex layout inside a Template, ensure to set the InputTransparent property of the views loaded in the DataTemplate of the GridTemplateColumn as True.

 

Sample Link: How to get row index via button click inside GridTemplateColumn?s

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied