В настоящее время я застреваю с проблемой, которая проста с первого взгляда. Его автоматическое тестирование графического интерфейса.Доступ к WPF DataGrid после создания видимого элемента
Я хочу, чтобы строка/ячейка WPF DatGrid была полностью видна с помощью прокрутки с помощью ScrollIntoView (строка), а затем сразу после этого обращалась к строке/ячейке. К сожалению, прокрутка в ScrollViewer, похоже, происходит асинхронно. Это означает, что мне нужно дождаться завершения прокрутки до доступа к строке/ячейке. Для этого я нашел событие ScrollChanged, которое я могу подписаться.
Существует только одна деталь, которую я не могу решить: если строка/ячейка, к которой я хочу получить доступ, уже видна (и прокрутки не требуется) Я не получаю это событие, и алгоритм застревает. Я не смог найти надежный способ предсказать, действительно ли прокручивается вызов ScrollIntoView (строка).
Любая идея, как решить эту проблему?
Вы попробовали 'dataGrid.UpdateLayout();' после вас 'ScrollIntoView'? – dkozl
Спасибо! Это действительно работает! Я мог представить, что этот трюк может пригодиться и в некоторых других случаях. Это где-то задокументировано? Как вы узнали, что обновление макета также обновляет порт представления? – Silicomancer
Да, это стандартный метод 'UIElement'. Я вложил ссылку в ответ. – dkozl