Вы можете попробовать это.Это ни в коем случае не идеальное решение.Вы можете рассмотреть это, пока не получите хорошее решение.
Здесь я сортирую таблицу данных, которая должна быть привязана к сетке, а не саму сетку данных.
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Rows.Add("3", "Entered 1st");
dt.Rows.Add("1", "Entered 2nd");
dt.Rows.Add("2", "Entered 3rd");
Сначала отсортируйте таблицу данных.Скопируйте его в другую таблицу, используя метод defalutview.ToTable, и добавьте новую строку.
dt.DefaultView.Sort = "ID ASC";
DataTable dtnew = new DataTable();
dtnew = dt.DefaultView.ToTable();
dtnew.Rows.Add("1", "Should be last row");
dataGridView1.DataSource = dtnew;
Надеюсь, это поможет.