public static void DeselectItem(IntPtr controlHandle, int index) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(SelectionPattern.Pattern, controlHandle); AutomationElement itemToSelect = SelectionItemPatternHelper.FindItemByIndex(control, index); StaticEvents.RegisterEvent(SelectionItemPattern.ElementRemovedFromSelectionEvent, control); SelectionItemPatternHelper.RemoveFromSelection(itemToSelect); LogController.ReceiveLogMessage(new LogMessage("List Item deselected: " + index)); } catch (InvalidOperationException) { /* Call native function */ ProdListBoxNative.DeSelectItemNative(controlHandle, index); } catch (ElementNotAvailableException err) { throw new ProdOperationException(err.Message, err); } catch (ArgumentException err) { throw new ProdOperationException(err.Message, err); } }
public static void SetSelectedItem(IntPtr controlHandle, int index) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(SelectionPattern.Pattern, controlHandle); StaticEvents.RegisterEvent(SelectionItemPattern.ElementSelectedEvent, control); AutomationElement indexedItem = SelectionItemPatternHelper.FindItemByIndex(control, index); SelectionItemPatternHelper.SelectItem(indexedItem); LogController.ReceiveLogMessage(new LogMessage(index.ToString(CultureInfo.InvariantCulture))); } catch (InvalidOperationException) { ProdListBoxNative.SelectItemNative(controlHandle, index); } catch (ElementNotAvailableException err) { throw new ProdOperationException(err.Message, err); } catch (ArgumentException err) { throw new ProdOperationException(err.Message, err); } }
private static bool UiaIsItemSelected(BaseProdControl control, int index) { AutomationElement element = SelectionItemPatternHelper.FindItemByIndex(control.UIAElement, index); bool retVal = SelectionItemPatternHelper.IsItemSelected(element); LogController.ReceiveLogMessage(new LogMessage(retVal.ToString())); return(retVal); }
private static void UiaSetSelectedIndex(BaseProdControl control, int index) { LogController.ReceiveLogMessage(new LogMessage("Selecting " + index)); AutomationEventVerifier.Register(new EventRegistrationMessage(control, SelectionItemPattern.ElementSelectedEvent)); AutomationElement indexedItem = SelectionItemPatternHelper.FindItemByIndex(control.UIAElement, index); SelectionItemPatternHelper.SelectItem(indexedItem); }
private static void UiaRemoveFromSelection(BaseProdControl control, int index) { if (!UiaCanSelectMultiple(control)) { throw new ProdOperationException("Does not support multiple selection"); } AutomationElement itemToSelect = SelectionItemPatternHelper.FindItemByIndex(control.UIAElement, index); AutomationEventVerifier.Register(new EventRegistrationMessage(control, SelectionItemPattern.ElementRemovedFromSelectionEvent)); LogController.ReceiveLogMessage(new LogMessage("Removing " + index)); SelectionItemPatternHelper.RemoveFromSelection(itemToSelect); }