How to reproduce: public partial class Form1 : Form { private DataTable dt = new DataTable(); public Form1() { InitializeComponent(); this.FillData(); this.radGridView1.DataSource = this.dt; this.radGridView1.EnableSorting = true; this.radGridView1.EnableFiltering = true; this.radGridView1.MasterTemplate.DataView.BypassSort = true; this.radGridView1.SortChanged += radGridView1_SortChanged; this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill; } public void FillData() { dt.Columns.Add("Id", typeof(int)); dt.Columns.Add("Name", typeof(string)); for (int i = 0; i < 30; i++) { dt.Rows.Add(i, "Item" + i); } } private void radGridView1_SortChanged(object sender, Telerik.WinControls.UI.GridViewCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Add || e.Action == NotifyCollectionChangedAction.ItemChanged) { SortDescriptor s = e.NewItems[0] as SortDescriptor; string sortOperator = ""; if (s.Direction == ListSortDirection.Ascending) { sortOperator = "ASC"; } else { sortOperator = "DESC"; } dt.DefaultView.Sort = s.PropertyName + " " + sortOperator; } if (e.Action == NotifyCollectionChangedAction.Remove) { dt.DefaultView.Sort = ""; } } } Workaround: public partial class Form1 : Form { private DataTable dt = new DataTable(); public Form1() { InitializeComponent(); this.FillData(); this.radGridView1.DataSource = this.dt; this.radGridView1.EnableSorting = true; this.radGridView1.EnableFiltering = true; this.radGridView1.MasterTemplate.DataView.BypassSort = true; this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill; this.radGridView1.CellBeginEdit += RadGridView1_CellBeginEdit; this.radGridView1.CellEndEdit += RadGridView1_CellEndEdit; } private void RadGridView1_CellEndEdit(object sender, GridViewCellEventArgs e) { if (e.Row is GridViewFilteringRowInfo) { this.radGridView1.MasterTemplate.DataView.BypassSort = true; } } private void RadGridView1_CellBeginEdit(object sender, Telerik.WinControls.UI.GridViewCellCancelEventArgs e) { if (e.Row is GridViewFilteringRowInfo) { this.radGridView1.MasterTemplate.DataView.BypassSort = false; } } public void FillData() { dt.Columns.Add("Id", typeof(int)); dt.Columns.Add("Name", typeof(string)); for (int i = 0; i < 30; i++) { dt.Rows.Add(i, "Item" + i); } } }