Verificando se OnPropertyChanged () é chamado no thread da interface do usuário no MVVM WPF app

Em um aplicativo WPF que estou escrevendo usando o padrão MVVM, tenho um processo em segundo plano que faz isso, mas preciso obter atualizações de status para a interface do usuário.

Estou usando o padrão MVVM, então meu ViewModel não conhece praticamente nada da visualização (UI) que está apresentando o modelo ao usuári

Digo que eu tenho o seguinte método no meu ViewModel:

public void backgroundWorker_ReportProgress(object sender, ReportProgressArgs e)
{
    this.Messages.Add(e.Message);
    OnPropertyChanged("Messages");
}

Na minha opinião, tenho um ListBox vinculado à propriedade Messages (aList<string>) do ViewModel.OnPropertyChanged cumpre o papel doINotifyPropertyChanged chamando umPropertyChangedEventHandler.

Preciso garantir queOnPropertyChanged é chamado no thread da interface do usuário - como faço isso? Eu tentei o seguinte:

public Dispatcher Dispatcher { get; set; }
public MyViewModel()
{ 
    this.Dispatcher = Dispatcher.CurrentDispatcher;
}

Em seguida, adicione o seguinte aoOnPropertyChanged método:

if (this.Dispatcher != Dispatcher.CurrentDispatcher)
{
    this.Dispatcher.Invoke(DispatcherPriority.Normal, new ThreadStart(delegate
    {
        OnPropertyChanged(propertyName);
    }));
    return;
}

mas isso não funcionou. Alguma ideia

questionAnswers(5)

yourAnswerToTheQuestion