protected override string DoImpl() { var registeredKey = this.ExecutedCommand.Parameters["ID"].ToString(); var element = this.Automator.ElementsRegistry.GetRegisteredElement(registeredKey); DataGridViewHeader item = (DataGridViewHeader)element.FlaUIElement; var columns = item.Columns; var flaUiDriverElementList = columns .Select <AutomationElement, FlaUIDriverElement>((Func <AutomationElement, FlaUIDriverElement>)(x => new FlaUIDriverElement(x))) .ToList <FlaUIDriverElement>(); var registeredKeys = this.Automator.ElementsRegistry.RegisterElements(flaUiDriverElementList); var registeredObjects = registeredKeys.Select(e => new JsonElementContent(e)); return(this.JsonResponse(ResponseStatus.Success, registeredObjects)); }
/// <summary> /// <see cref="DataGridViewHeader.Columns"/> does not work in culture different than English or German /// </summary> /// <returns></returns> private static DataGridViewHeaderItem[] GetDataGridViewHeaderColumns(DataGridViewHeader dataGridViewHeader) { // WinForms uses Header control type, WPF uses HeaderItem control type var headerItems = dataGridViewHeader.FindAllChildren(cf => cf.ByControlType(ControlType.Header) .Or(cf.ByControlType(ControlType.HeaderItem))); var convertedHeaderItems = headerItems.Select(x => new DataGridViewHeaderItem(x.FrameworkAutomationElement)) .ToList(); // Remove the top-left header item if it exists (can be the first or last item) if (convertedHeaderItems.Last().Text == CustomLocalizedStrings.DataGridViewHeaderItemTopLeft) { convertedHeaderItems = convertedHeaderItems.Take(convertedHeaderItems.Count - 1).ToList(); } else if (convertedHeaderItems.First().Text == CustomLocalizedStrings.DataGridViewHeaderItemTopLeft) { convertedHeaderItems = convertedHeaderItems.Skip(1).ToList(); } return(convertedHeaderItems.ToArray()); }
protected override string DoImpl() { var registeredKey = this.ExecutedCommand.Parameters["ID"].ToString(); var element = this.Automator.ElementsRegistry.GetRegisteredElement(registeredKey); DataGridView item = element.FlaUIElement.AsDataGridView(); DataGridViewHeader header = item.Header; if (header == null) { throw new AutomationException("Element cannot be found", ResponseStatus.NoSuchElement); } var itemRegisteredKey = this.Automator.ElementsRegistry.RegisterElement(new FlaUIDriverElement(header)); var registeredObject = new JsonElementContent(itemRegisteredKey); return(this.JsonResponse(ResponseStatus.Success, registeredObject)); }