【发布时间】:2013-06-20 10:08:43
【问题描述】:
目前我遇到了一个乍一看很简单的问题。它是关于自动化 GUI 测试的。
我想通过使用 ScrollIntoView(row) 滚动然后直接访问该行/单元格来使 WPF DatGrid 的行/单元格完全可见。不幸的是,ScrollViewer 中的滚动似乎是异步发生的。这意味着我需要等待滚动完成才能访问行/单元格。为此,我找到了可以订阅的 ScrollChanged 事件。
只有一个细节我无法解决:如果我想要访问的行/单元格已经可见(并且不需要滚动),我不会收到该事件并且算法会卡住。我无法找到一种可靠的方法来预测对 ScrollIntoView(row) 的调用是否实际滚动。
知道如何解决这个问题吗?
【问题讨论】:
-
你在
ScrollIntoView之后尝试dataGrid.UpdateLayout();吗? -
谢谢!这似乎真的有效!我可以想象这个技巧在其他一些情况下也可以派上用场。它是否记录在某处?你怎么知道更新布局也会更新视口?
-
是的,它是标准的
UIElement方法。我已将链接放入答案中。
标签: wpf datagrid gui-testing