C# 本地捕获WPF异常

C# 本地捕获WPF异常,c#,.net,wpf,xaml,wpfdatagrid,C#,.net,Wpf,Xaml,Wpfdatagrid,我们有一些使用古老的.NET SDK(v4.0.30319)的客户,他们的DataGrid存在已知问题,导致“索引超出了某些操作和输入的范围”。 (详情可以是或) 我们的用户无法升级其.NET版本(受控环境,无管理员权限) 有没有办法在本地捕获异常? 到目前为止,我们发现最好的方法是通过dispatchernhandledexception在我们的app.xaml中全局捕获异常,但我们确实希望仅针对此特定模块捕获此特定错误 对于视图,是否存在与DispatcherUnhandledExcepti

我们有一些使用古老的.NET SDK(v4.0.30319)的客户,他们的DataGrid存在已知问题,导致“索引超出了某些操作和输入的范围”。
(详情可以是或)

我们的用户无法升级其.NET版本(受控环境,无管理员权限)

有没有办法在本地捕获异常?

到目前为止,我们发现最好的方法是通过
dispatchernhandledexception
在我们的
app.xaml
中全局捕获异常,但我们确实希望仅针对此特定模块捕获此特定错误

对于视图,是否存在与DispatcherUnhandledException等价的内容?

或者以任何方式“侵入”WPF管道以捕获错误。

如果不使用
调度程序,您将无法捕获此特殊异常。未处理的异常
,因为如果存在
ArgumentOutOfRangeException
它将被抛出网格内部,并与调度程序一起抛出。如果原因确实是UI交互(您可以在堆栈跟踪中看到)您将无法捕捉到这种特殊情况。

此异常是否发生在视图的构造过程中或显示时?当视图已经显示并在以特定方式重新排序绑定到网格的
数据表后更新/刷新时。此外,还提到了这与虚拟化有关,因此,通过设置
virtualizangstackpanel.isvirtualization=“False”
禁用虚拟化可以完全解决此问题-但是,这可能会使大量项目的查看速度非常慢,并且可能不适合您。