Witam wszystkich to mój pierwszy post proszę nie bić ;)

Mam pewną sytuację związana z datagridview a dokładnie chodzi mi o odświeżanie jego zawartości.
Piszę małą aplikacje w oparciu o dblinq (współpraca z mysql).
Na formie jest jeden datagridview wyświetlający mi rekordy z bazy danych.
W programie możemy dodać nowy rekord (poprzez przycisk otwierający nową formę) oraz edytować istniejący już rekord (poprzez dwuklik na danej komórce datagridview'a).

Wszystko działa sprawnie tylko nurtuje mnie jeden problem.

Po dodaniu nowego rekordu lub modyfikacji istniejącego zachodzi potrzeba odświeżenia zawartości datagridviewa na głownej formatce.
Robię to w ten sposób, że po zamknięciu formatki dodającej rekord lub edytującej istniejący odświeżam datasource datagridviewa:

          
        var juzers = from user in pdb.PobierzUserow()
                         select new
                         {
                           user.idUser,
                           user.Login,
                           user.Jos.Nazwa
                         };
            
            dgvUsers.DataSource = juzers.ToList(); 

gdzie pdb.PoberzUserow() realizuję w ten sposób:

        public IQueryable<User> PobierzUserow()
        {
            return from us in sqldb.User
                   orderby us.idUser
                   select us;
        }

minusem tego rozwiązania jest to iż aktualnie zaznaczony rekord na datagridview jest tracony
lecz obchodzę to w ten sposób, że zapamiętuje przed odświeżaniem zawartości zmienne
CurrentCell.RowIndex oraz FirstDisplayedScrollingRowIndex tak aby przywrócić je i wszystko jest ok
ale jakoś to rozwiązanie wydaje mi się nie podoba.
Czy nie ma może innego sposobu bardziej eleganckiego aby datagridview odświeżał zmiany oraz nie tracił ustawienia aktualnie zaznaczonego rekordu?

Dziękuje serdecznie za wszelkie podpowiedzi i pozdrawiam
Maciej