【发布时间】:2011-06-12 18:25:24
【问题描述】:
我的模型有几个属性,一个是字符串,另一个是 observablecolletion。创建模型时,它会触发一个后台工作线程来基本上轮询 .dll 以获取数据。根据它接收到的数据,它将设置字符串和/或将项目添加到可观察集合。我的字符串属性似乎可以很好地触发其 Onproperty 更改并且视图会更新。但是,我的 observable Collection 抛出了一个跨线程异常。我尝试移动代码,将 ObesrvableCollection 设置为 worker.ReportProgress 并得到相同的错误。我已将逻辑移到视图模型中,但仍然出现相同的线程错误。我不确定为什么我的字符串属性适用于一个。我已阅读有关 Dispatcher.Invoke 的信息,但我很确定我的模型不应该意识到这一点。谁能解释一下解决这个问题的正确方法。
仅供参考 - 我的观点与我的模型没有直接关系。我的 viewModel 中有我的模型的属性,并且模型通过构造函数注入传递。只是想在任何人认为我的模型直接与视图对话之前把它放在那里。
【问题讨论】:
标签: wpf multithreading mvvm observablecollection