c# – 使用调度程序时代码和演示文稿的真正分离
发布时间:2020-12-15 06:26:32 所属栏目:百科 来源:网络整理
导读:在我的 WPF中,尝试将我的类逻辑与任何接口相关的数据分开,并且只提供用于绑定的ObservableCollection属性. 问题是,当我从其他线程访问这些绑定的OC时,我需要通过调度程序.结果是,我需要在我的类中添加许多Dispatcher.Invoke()调用,只要其中一种方法尝试更新O
在我的
WPF中,尝试将我的类逻辑与任何接口相关的数据分开,并且只提供用于绑定的ObservableCollection属性.
问题是,当我从其他线程访问这些绑定的OC时,我需要通过调度程序.结果是,我需要在我的类中添加许多Dispatcher.Invoke()调用,只要其中一种方法尝试更新OC. 我该如何以更干净,分离的方式做到这一点,所以调度员调用从我的方法中抽象出来? 解决方法
选项1
我认为您应该使用MVVM模式更好地分离您的代码,如果您不熟悉它,我强烈建议您查看following video,因为它将准确解释您正在寻找的内容. 然而,具体来说,在你的情况下,你应该有一个常规集合(例如List)的模型类,你可以在其中执行线程中的所有工作.您的ViewModel应该包含ObservableCollections并且与模型中存在的集合松散连接,例如,您可以选择通过ViewModel中的事件订阅模型中的某个更新逻辑.您仍然需要使用Dispatcher更新OC,但您只需要执行一次. 选项2 您可以使用here所描述的解决方案.基本上,他从OC创建了一个新的派生类,允许您自动从代码中分派更改,而无需自己更新调度程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |