Как ввести значение в ячейку сетки данных с помощью Microsoft UI Automation - PullRequest
0 голосов
/ 21 февраля 2020

Я новичок в C# и UI Automation. Итак, у меня есть приложение Desktop WPF, которое состоит из матрицы данных с матрицей 14 * 12. Я могу получить доступ к строкам и столбцам, используя следующий код. Но я не могу редактировать указанную ячейку c с помощью автоматизации пользовательского интерфейса. Я пытался использовать SetValue (), но он не устанавливает никакого значения. Ниже вы можете найти мой код. Можно ли как-то установить значение 1000 для любой ячейки из таблицы данных? Заранее спасибо за помощь.

AutomationElement aedatagridWP = aeACTVersion.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, "dgPopulateData"));

aedatagridWP.SetFocus();

AutomationElementCollection lines = aedatagridWP.FindAll(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.DataItem));

AutomationElementCollection items = lines[5].FindAll(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Custom));

ValuePattern pattern1 =items[5].GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;

string value = pattern1.Current.Value;

AutomationElement textitem = aedatagridWP.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "2372"));

ValuePattern tex = textitem.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;

((ValuePattern)tex).SetValue("1000");
...