با سلام
کتابخانه System.Linq.Dynamic رو از طریق Nuget به پروژت اضافه کن سپس در رویداد dataGridView1_ColumnHeaderMouseClick کد زیر رو بنویس
private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
dataGridView1.DataSource = db.Persons.OrderBy(dataGridView1.Columns[e.ColumnIndex].DataPropertyName).ToList();
}
اینم برای F5 :
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode==Keys.F5)
dataGridView1.DataSource = db.Persons.OrderBy(dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex].DataPropertyName).ToList();
}
موفق باشید