是否有支持VirtualizedItemPattern的WPF控件?

时间:2017-09-25 23:23:14

标签: c# .net wpf ui-automation

我尝试实现一种方法,从启用虚拟化的ListView中获取所有项目以进行测试。但显然,尽管微软声称自WPF 4支持虚拟化以来的所有控制都必须实现VirtualizedItemPattern,这样开发人员才能从容器中获取所有项目,而无需隐式滚动容器。

我的简单WPF应用程序在Window元素中有ListView项,并添加在代码隐藏的100个元素中。根据{{​​3}},我的期望是我能够从ListView获取VirtualizedItemPattern并调用Realize()方法使虚拟项完全可以作为UI Automation元素访问。但尝试这样做会引发“不受支持的模式”#34;异常。

嗯,接下来我的想法就像,也许我在选择一个项目容器时犯了一个错误,并意识到我试过的那些容器都不支持这个"功能"。

此时,我完全陷入困境,因为没有关于此的文档,也没有任何示例。这个功能怎么了?它被淘汰了吗?任何操作系统/某些限制(我试过W7和W10)?

更新: 我尝试填充ListView的方式:

var _list = Enumerable.Range(0, 100).Select(i => i.ToString());

foreach (var item in _list)
{ 
  List.Items.Add(item);
}

然后我认为问题可能在于我如何填充控件,所以我决定尝试使用ItemsSource

List.ItemsSource = _list;

在这两种情况下,我得到了相同的结果 - 无法通过UI自动化框架获取所有项目。

0 个答案:

没有答案