我在视图中有一个数据网格,它的项目源绑定到我的视图模型中的可观察集合。这工作正常。我已经在视图 xaml 中定义了数据网格的列和绑定。所有列都有一个与它们所代表的数据库列名称相匹配的唯一名称。
我创建了一个用户控件,其中包含数据网格的所有过滤器。用户控件有一个命令,视图模型绑定到该命令为视图模型提供调用 ria 服务所需的所有参数,并填充绑定到数据网格项目源的可观察集合。这工作正常。
我有一个服务,它引用了数据网格并订阅了过滤器用户控件的事件之一。当事件触发服务更改列标题,然后使用列显示索引对列重新排序时,它会折叠不再相关的列。
除了更改显示索引外,所有这些都有效。每次更改显示索引值之一时,都会出现超出范围的异常。我在离开方法之前查看了索引,它们是有效的。我试过等到数据绑定发生之后,它没有任何区别。任何见解将不胜感激。这是堆栈跟踪:
在 MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData) 在 MS.Internal.XcpImports.MethodEx(DependencyObject obj, String name) 在 System.Windows.UIElement.UpdateLayout()