Asegurándose de que se llama a OnPropertyChanged () en el subproceso de la interfaz de usuario en la aplicación MVVM WPF

En una aplicación WPF que estoy escribiendo usando el patrón MVVM, tengo un proceso en segundo plano que hace lo suyo, pero necesito obtener actualizaciones de estado a la UI.

Estoy usando el patrón MVVM, por lo que mi ViewModel no sabe prácticamente nada de la vista (IU) que presenta el modelo al usuario.

Digo que tengo el siguiente método en mi ViewModel:

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

n mi opinión, tengo un ListBox vinculado a la propiedad Mensajes (unList<string>) de ViewModel. @OnPropertyChanged cumple el rol deINotifyPropertyChanged interfaz llamando a unPropertyChangedEventHandler.

Necesito asegurarme de queOnPropertyChanged se llama en el hilo de la interfaz de usuario, ¿cómo hago esto? He intentado lo siguiente:

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

A continuación, agregue lo siguiente a laOnPropertyChanged método:

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

pero esto no funciono. ¿Algunas ideas

Respuestas a la pregunta(5)

Su respuesta a la pregunta