public override AutomationElement FindFirst(TreeScope treeScope, ConditionBase condition)
        {
            Automation.CheckConnected();
            switch (condition)
            {
            case PropertyCondition xPropCondition:
                if (xPropCondition.PropertyConditionFlags != PropertyConditionFlags.None)
                {
                    throw new NotImplementedException("PropertyConditionFlags not yet implemented!");
                }

                switch (xPropCondition.Property.Id)
                {
                case AutomationElementIdentifiers.AutomationIdPropertyId:
                    var xElemInfo = Automation.Client.FindFirstAutomationElementInWindow(mInfo, (string)xPropCondition.Value);

                    return(new AutomationElement(new ControlElement(mInfo, condition, xElemInfo, Automation)));

                default:
                    throw new Exception($"Property '{xPropCondition.Property.Name}' (#{xPropCondition.Property.Id}) not implemented!");
                }

            default:
                throw new NotImplementedException();
            }
        }
        internal void Invoke()
        {
            Automation.CheckConnected();
            switch (mFindCondition)
            {
            case PropertyCondition xPropCondition:
                if (xPropCondition.PropertyConditionFlags != PropertyConditionFlags.None)
                {
                    throw new NotImplementedException("PropertyConditionFlags not yet implemented!");
                }

                switch (xPropCondition.Property.Id)
                {
                case AutomationElementIdentifiers.AutomationIdPropertyId:
                    Automation.Client.InvokeAutomationElementByAutomationIdInWindowController(mParentWindow, (string)xPropCondition.Value);
                    return;

                default:
                    throw new Exception($"Property '{xPropCondition.Property.Name}' (#{xPropCondition.Property.Id}) not implemented!");
                }

            default:
                throw new NotImplementedException();
            }
        }