【问题标题】:Access WPF DataGrid after making element visible使元素可见后访问 WPF DataGrid
【发布时间】:2013-06-20 10:08:43
【问题描述】:

目前我遇到了一个乍一看很简单的问题。它是关于自动化 GUI 测试的。

我想通过使用 ScrollIntoView(row) 滚动然后直接访问该行/单元格来使 WPF DatGrid 的行/单元格完全可见。不幸的是,ScrollViewer 中的滚动似乎是异步发生的。这意味着我需要等待滚动完成才能访问行/单元格。为此,我找到了可以订阅的 ScrollChanged 事件。

只有一个细节我无法解决:如果我想要访问的行/单元格已经可见(并且不需要滚动),我不会收到该事件并且算法会卡住。我无法找到一种可靠的方法来预测对 ScrollIntoView(row) 的调用是否实际滚动。

知道如何解决这个问题吗?

【问题讨论】:

  • 你在ScrollIntoView之后尝试dataGrid.UpdateLayout();吗?
  • 谢谢!这似乎真的有效!我可以想象这个技巧在其他一些情况下也可以派上用场。它是否记录在某处?你怎么知道更新布局也会更新视口?
  • 是的,它是标准的UIElement 方法。我已将链接放入答案中。

标签: wpf datagrid gui-testing


【解决方案1】:

要确保布局更新,请在 ScrollIntoView 之后和要使用项目之前调用 UIElement.UpdateLayout。引用MSDN吧

确保此元素的所有可视子元素都为布局正确更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-28
    • 2018-06-05
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多