После моей точки зрения управления в Осмотреть инструмент, и я пытаюсь вернуть значение из текстового блока под деревом:UIAutomation не будет возвращать значение элемента детей
В моем приложении WPF окна , datagrid имеет строки и столбцы и пытается получить текстовые значения для определенной строки и столбца. Первая строка имеет текстовое значение (временную метку) в качестве текстового блока под поддеревом.
Проверьте свойства управления являются:
DataGrid - Datagrid
Log - DataItemControlType
Предмет - UIA_CustomControlType (DataGridCell)
Custom - UIA_CustomControlType (DataGridCell)
текст - UIA_TextControlTypeID
Я могу получить общее количество строк, но не могу получить текстовое значение.
var gridChilds = grid.LowLevelAutomationObject.FindAll(System.Windows.Automation.TreeScope.Children, Condition.TrueCondition).OfType<AutomationElement>();
var rows = gridChilds.Count() ;
List<AutomationElement> messages = new List<AutomationElement>();
TreeWalker walker = new TreeWalker(new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.DataItem));
AutomationElement ae = grdControl as AutomationElement;
AutomationElement row = walker.GetFirstChild(ae);
messages.Add(row);
row = walker.GetNextSibling(row);
string result = Convert.ToString(row);
return result ;
Я попробовал некоторые решения из онлайн-справки по аналогичным вопросам, но ни один из них не работал для моего примера. Я новичок в кодировании C# и инструменте, поэтому любая помощь будет принята с благодарностью.
Макс Янг, Большое вам спасибо, я смог получить работу вокруг чего-то похожего на вышеупомянутое решение, которое вы предоставили. Что-то, что «приятно иметь» - это цикл на пользовательском уровне и на основе номера строки, который я даю, он должен получить текстовое значение. Но большое вам спасибо за ваше время :) – cherryS
Нет проблем, если вам нужна помощь в UI Automation, не стесняйтесь сообщать мне. Ужасно учиться UI Automation с доступными ресурсами. –
Несомненно, большое вам спасибо за помощь. – cherryS