【发布时间】:2011-01-02 16:13:59
【问题描述】:
如果有人可以为此提供一些帮助,我将非常感激!
我们正在使用:Silverlight 3 / MVVM / Blacklight DragDock Control / ComponentOne Silverlight Controls
我有一个严重依赖 MVVM 模式的 Silverlight 应用程序。直到最近,该应用程序似乎一直运行良好。我已经开始注意到半随机(半随机 = 在足够长的时间 ~2 - 5 分钟内)我可以重现来自引发的 PropertyChanged 事件的 System.ExecutionEngineException。为其引发通知的属性名称并不总是相同的属性名称(属性更改事件的触发发生在基础 ViewModel 类中)。
代码基本上是这样的:
if (PropertyChanged != null) Application.Current.RootVisual.Dispatcher.BeginInvoke( () => PropertyChanged(this, new PropertyChangedEventArgs(propertyName)));
该代码适用于应用程序中的所有其他内容。基本上所有引发属性更改事件的事情都会经历这个。我不确定为什么这会突然失败。请给我一些想法。
我一直在研究windbg,试图了解正在发生的事情,但仍然很少。我很乐意提供转储或任何其他可能有用的信息。显然,这个特定错误给出的信息非常少......
提前谢谢你,大卫·贾斯蒂斯
【问题讨论】:
-
谢谢大家的回答。我认为我们将搜索范围缩小到第三方树控件中的问题,该问题基于在对基础集合进行排序后跟踪树中所选项目的问题而引发内部异常。错误的美妙之处在于它以两种不同的方式表现出来。一个,它在所选择的项目未更改时爆炸属性已更改,但更改了另一个树的另一个子,然后解雇了可观察的集合已更改的事件。第二个是更改所选项目时的索引超出范围异常。
标签: silverlight silverlight-3.0 mvvm