title: How to "refresh" my ViewModels after database changes have been done in another ViewModel?
body: <p>I'm currently writing a rather small desktop application using the MVVM Approach. It also utilizes Entity Framework 6 for the database access. Right now, my top-level ViewModel instantiates the 'smaller' ones, and passes them the <code>DbContext</code> I'm using. The smaller ViewModels I use correspond to UserControls sitting in a separate TabItem each. But if I change something in the database in one tab and switch the tab afterwards, the UI isn't keeping up, logically, since there is no <code>OnPropertyChanged("SomeObservableCollection")</code> Happening.</p>
  
  <p>I thought about just "refreshing everything inside" when a TabItem becomes active, but on one hand, I don't know how to do this (it would basically be doing <code>OnPropertyChanged(..)</code> for every UI-relevant property, right?), and on the other hand, it does seem neither elegant nor 'correct'.</p>
  
  <p>What should I do about this? And is using one global <code>DbContext</code> even good practice? I read about short-lived <code>DbContext</code> instances being better, but I also found the opposite statement regarding desktop applications...</p>
  
  <p>How do you handle this scenario? It can't be that rare actually, can it? Thanks!</p>