gpt4 book ai didi

mvvm-light - 使用 MVVM Light 时仍然需要调度到 UI 线程吗?

转载 作者:行者123 更新时间:2023-12-02 12:42:35 29 4
gpt4 key购买 nike

我希望这不是一个太愚蠢的问题:我刚刚开始使用 MVVM light(到目前为止很喜欢它!)。在“之前”(即使用 MVVML 之前),我必须通过 ui 分派(dispatch)任何会命中引发 INotifyPropertyChanged 事件的属性 setter 的代码。

我(错误地?)认为使用 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));
}
}

最佳答案

请引用我的回答:Thread safe, Silverlight

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

关于mvvm-light - 使用 MVVM Light 时仍然需要调度到 UI 线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7061816/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com