0

我们有一个ListView在我们的应用程序中使用的对象,它是一个新类SortableListView : ListView并使用该GridView模式。我们添加了一个自定义提供程序,它允许在自动化过程中对行进行去虚拟化(因此我们不需要执行“在屏幕上检查、否、滚动、重复”选择列表中的项目的方法)。它效果很好,当您意识到屏幕外的对象时,它会有效地出现在屏幕上。我们使用 ListView 因为网格是只读的,所以我们不需要 DataGrid 的编辑模板。

但是,有时(我们无法准确追踪导致它的原因)ControlType 被识别为 DataGrid 而不是 ListView。这破坏了我们的自动化,并且我们能找到的唯一方法是,每次我们必须处理网格时,我们都必须检查它是否将自身呈现为 DataGrid 或 ListView。更令人不安的是表的实际行具有 Class ListViewItem,Microsoft 未修改的确切对象形式,但被识别为 DataGrid 行。

有谁知道为什么 UIAutomation 会决定它是一个DataGrid而不是 ListView?它实际上只是直接从 ListView 继承的。

4

0 回答 0