Plik? Baza? Nigdy w życiu do czegoś takiego. Nawet IPC to za dużo i nie w tym kierunku. Wyobraź sobie, że zmieniasz sobie nazwisko, idziesz z tym do okienka urzędu (jak by nie patrzeć jest to rodzaj interfejsu komunikacyjnego) i informujesz o zmianie, urzędnik propaguje to gdzieś dalej, Ciebie to nie obchodzi co się tam dalej dzieje, spełniłeś wszystkie wymagane formalności. Użycie plików wygląda w tym przykładzie tak, jakbyś zmienił sobie nazwisko, informację o tym przykleił na latarni, a tymczasem urzędnik, który tą zmianę ma zalegalizować od pięciu lat codziennie rano idąc do pracy nadkłada 2km drogi, żeby przejść obok tej latarni i zerknąć, czy przypadkiem nie zmieniasz nazwiska.
Klasa obsługująca dane okno powinna implementować interfejs (jakiś urzędnik - celowo jakiś, bo zalecam użycie interfejsu, który uniezależnia nas od konkretnego urzędnika - czyli konkretnej klasy implementującej daną funkcjonalność, nas interesuje tylko, że w okienku od zmian nazwiska jest urzędnik), który pozwala na informowanie (okienko urzędnika) jej o zmianach w pewnych danych. Nie powinna odsłaniać publicznie swoich własnych danych (urzędnik nie wpuszcza nikogo na zaplecze).
Samą komunikację możesz zrobić na eventach i Message Bus/Service Bus, ewentualnie jakiejś prostszej namiastce tego.