diff --git a/README.md b/README.md
index 697454e..6c4c58a 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,113 @@
-# How-to-perform-range-selection-with-shift-key-in-.NET-MAUI-DataGrid-SfDataGrid
-This demo shows how to perform range selection with shift key in .NET MAUI DataGrid (SfDataGrid)?
+# How to perform range selection with shift key in .NET MAUI DataGrid SfDataGrid
+This article shows how to implement **Range Selection** with the **Shift key** in Syncfusion [.NET MAUI DataGrid](https://help.syncfusion.com/maui/datagrid/overview) (`SfDataGrid`). It demonstrates how a user can select rows continuously using the Shift key and the Arrow Up key. Similarly, deselection of rows continuously can also be done using the Shift key and the Arrow Down key.
+
+## Xaml
+```
+
+
+
+
+
+
+
+
+```
+
+## Xaml.cs
+```
+public partial class MainPage : ContentPage
+{
+ readonly CustomRowSelectionController customRowSelectionController;
+
+ public MainPage()
+ {
+ InitializeComponent();
+ customRowSelectionController = new CustomRowSelectionController(dataGrid);
+ dataGrid.SelectionController = customRowSelectionController;
+#if WINDOWS
+ dataGrid.HandlerChanged += DataGrid_HandlerChanged;
+#endif
+ }
+#if WINDOWS
+ private void DataGrid_HandlerChanged(object? sender, EventArgs e)
+ {
+ if (dataGrid?.Handler?.PlatformView is FrameworkElement nativeElement)
+ {
+ nativeElement.KeyUp += DataGrid_KeyUpEvent;
+ nativeElement.KeyDown += DataGrid_KeyDownEvent;
+ }
+ }
+
+ private void DataGrid_KeyUpEvent(object sender, Microsoft.UI.Xaml.Input.KeyRoutedEventArgs e)
+ {
+ if (e.Key == Windows.System.VirtualKey.Shift)
+ {
+ customRowSelectionController._isShiftPressed = false;
+ }
+ }
+
+ private void DataGrid_KeyDownEvent(object sender, Microsoft.UI.Xaml.Input.KeyRoutedEventArgs e)
+ {
+ if (e.Key == Windows.System.VirtualKey.Shift)
+ {
+ customRowSelectionController._isShiftPressed = true;
+ }
+ }
+#endif
+}
+```
+
+## CustomRowSelectionController.cs
+```
+public class CustomRowSelectionController : DataGridRowSelectionController
+{
+ private SfDataGrid grid;
+ public bool _isShiftPressed { get; set; }
+
+ public CustomRowSelectionController(SfDataGrid dataGrid) : base(dataGrid)
+ {
+ this.grid = dataGrid;
+ }
+
+ public override void HandlePointerOperation(RowColumnIndex rowColumnIndex)
+ {
+ if (_isShiftPressed)
+ {
+ if (grid.SelectedRows.Count > 0)
+ {
+ var selectedRow = grid.SelectedRows[0] as OrderInfo;
+ var selectCollection = new ObservableCollection