Any change to the user interface must be done by the Dispatcher
thread. Good practice, if you have an anthoer thread constantly changing the view model, is to force property definition tools to use the dispatcher thread. In this case, you will make sure that you do not change the user interface element in another thread.
Try:
public string Property { set { Dispatcher.BeginInvoke(()=> _property = value ) ; OnPropertyChanged("Property"); } get { return _property; } }
source share