调度到使用MVVM Light时仍然需要的UI线程?

Joe*_*Joe 8 mvvm-light

我希望这不是一个愚蠢的问题:我刚刚开始使用MVVM灯(到目前为止爱它!).在"之前的时间"(即在使用MVVML之前),我不得不发送任何代码,这些代码会触及在其中引发INotifyPropertyChanged事件的属性设置器.

我(错误地?)认为使用MVVMlight时需求会消失.

我仍然要使用它,对吗?我的实验告诉我一个响亮的是.

这是真正愚蠢的部分 - 因为需要在某处初始化MVVML dispatcherhelper类,我假设它保存了UI线程,为什么不让RaisePropertyChanged调用自动执行Dispatch?这似乎是常见的事情吗?

本身不是批评,更多的是"它怎么不以这种方式工作":-)

编辑 (从作者的评论中复制)

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)); 
    } 
}
Run Code Online (Sandbox Code Playgroud)

Gon*_*ing 1

请参考我这里的回答:线程安全,Silverlight

我强烈推荐您所建议的内容。