public SetResult TrySet(string value)
        {
            if (!DoesApply())
            {
                return(SetResult.NotApplicable);
            }
            _element.ExpandAll(_automation, 0);

            if (string.IsNullOrWhiteSpace(value))
            {
                DeselectAll(_selectionPattern.GetCurrentSelection());
                return(SetResult.Success);
            }

            var condition = _automation.CreatePropertyCondition(UIA_PropertyIds.UIA_NamePropertyId, value);
            var item      = _element.FindFirst(TreeScope.TreeScope_Descendants, condition);

            return(item == null
                ? SetResult.Failure
                : new SelectionItemPattern(item, _selectionPattern.CurrentCanSelectMultiple != 0).TrySet(SelectionItemPattern
                                                                                                         .SelectValue));
        }