title: True separation of code and presentation while using the Dispatcher
body: <p>In my WPF try to separate my classes logic from any interface related data and only supply ObservableCollection properties for binding.</p>
  
  <p>Problem is, when I access those binded OCs from other threads, I am required to do so through the dispatcher. The result is that I am required to add many Dispatcher.Invoke() calls, hidden inside my classes, whenever one of the methods attempts to update the OCs. </p>
  
  <p>How can I do that in a more clean and separated way, so the dispatcher calls be abstracted away from my methods?</p>