Many Thanks for posting such a great question and the solution. I am also stuck with this.
And I still couldn't make it work til a minute ago. I have been so desperate that I blamed MEF and changed the test app to Unity from MEF. :)
Inside my Module I have the following:
public void Initialize()
_regionManager.RegisterViewWithRegion(Constants.MainRegion, () => _container.Resolve<ContactView>());
Maybe because the View is created first and the viewmodel is added at runtime (Loaded), the tab doesnt see the property yet? But the INotifyPropertyChanged should have really reported this later nonetheless. Unless the Header of a tab can't be changed
You won't believe it but by by reversing your response, I got it working. This works for me but not if I use the Loaded event.
public ContactView(ContactViewModel _viewModel)
this.DataContext = _viewModel;
Can a PRISM pro explain why this is happening?