При использовании MVVM Light по-прежнему требуется отправка в поток пользовательского интерфейса?

Я надеюсь, что это не слишком глупый вопрос: я только начал использовать MVVM свет (люблю его пока!). В «до времени» (то есть до использования MVVML) мне приходилось отправлять через пользовательский интерфейс любой код, который попадал бы в средство задания свойств, в котором было возбуждено событие INotifyPropertyChanged.

Я (неправильно?) Думал, что это требование будет исчезают при использовании MVVMlight.

Мне все еще нужно его использовать, верно? Мои эксперименты говорят мне решительное «да».

Итак, вот действительно глупая часть - поскольку существует требование инициализировать где-нибудь класс диспетчера MVVML, где, как я предполагаю, он сохраняет поток пользовательского интерфейса, почему бы не сделать так, чтобы вызов RaisePropertyChanged выполнял Dispatch автоматически? Вроде обычное дело?

Не критика как таковая, а скорее «почему это не работает так?»: -)

Edit (скопировано из комментария автора)

FWIW, я сделал это :

public class QViewModelBase : ViewModelBase { 
    protected override void RaisePropertyChanged(string propertyName) { 
        DispatcherHelper.CheckBeginInvokeOnUI( () => base.RaisePropertyChanged(propertyName)); 
    } 
    protected override void RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast) { 
        DispatcherHelper.CheckBeginInvokeOnUI( () => base.RaisePropertyChanged<T>(propertyName, oldValue, newValue, broadcast)); 
    } 
}
8
задан AxelEckenberger 18 August 2011 в 07:22
поделиться