Udostępnij za pośrednictwem


SelectionItemPattern.AddToSelection Metoda

Definicja

Dodaje bieżący element do kolekcji wybranych elementów.

public:
 void AddToSelection();
public void AddToSelection ();
member this.AddToSelection : unit -> unit
Public Sub AddToSelection ()

Wyjątki

Podjęto próbę dodania zaznaczenia do kontenera z pojedynczym wyborem, w którym CanSelectMultipleProperty = false zaznaczono już inny element.

Przykłady

W poniższym przykładzie pokazano, jak dodać element do kolekcji aktualnie wybranych elementów.

///--------------------------------------------------------------------
/// <summary>
/// Retrieves the selection container for a selection item.
/// </summary>
/// <param name="selectionItem">
/// An automation element that supports SelectionItemPattern.
/// </param>
///--------------------------------------------------------------------
private AutomationElement GetSelectionItemContainer(
    AutomationElement selectionItem)
{
    // Selection item cannot be null
    if (selectionItem == null)
    {
        throw new ArgumentException();
    }

    SelectionItemPattern selectionItemPattern = 
        selectionItem.GetCurrentPattern(SelectionItemPattern.Pattern) 
        as SelectionItemPattern;
    if (selectionItemPattern == null)
    {
        return null;
    }
    else
    {
        return selectionItemPattern.Current.SelectionContainer; 
    }
}
'''--------------------------------------------------------------------
''' <summary>
''' Retrieves the selection container for a selection item.
''' </summary>
''' <param name="selectionItem">
''' An automation element that supports SelectionItemPattern.
''' </param>
'''--------------------------------------------------------------------
Private Function GetSelectionItemContainer( _
ByVal selectionItem As AutomationElement) As AutomationElement
    ' Selection item cannot be null
    If selectionItem Is Nothing Then
        Throw New ArgumentException()
    End If

    Dim selectionItemPattern As SelectionItemPattern = _
    DirectCast(selectionItem.GetCurrentPattern( _
    selectionItemPattern.Pattern), SelectionItemPattern)
    If selectionItemPattern Is Nothing Then
        Return Nothing
    Else
        Return selectionItemPattern.Current.SelectionContainer
    End If
End Function 'GetSelectionItemContainer
///--------------------------------------------------------------------
/// <summary>
/// Attempts to add the current item to a collection 
/// of selected items. 
/// </summary>
/// <param name="selectionItem">
/// An automation element that supports SelectionItemPattern.
/// </param>
///--------------------------------------------------------------------
private void AddItemToSelection(AutomationElement selectionItem)
{
    if (selectionItem == null)
    {
        throw new ArgumentNullException(
            "Argument cannot be null or empty.");
    }
    
    AutomationElement selectionContainer = 
        GetSelectionItemContainer(selectionItem);

    // Selection container cannot be null
    if (selectionContainer == null)
    {
        throw new ElementNotAvailableException();
    }

    SelectionPattern selectionPattern = 
        selectionContainer.GetCurrentPattern(SelectionPattern.Pattern)
        as SelectionPattern;
    
    if (selectionPattern == null)
    {
        return;
    }

    if (selectionPattern.Current.CanSelectMultiple)
    {
        SelectionItemPattern selectionItemPattern =
            selectionItem.GetCurrentPattern(
            SelectionItemPattern.Pattern)
            as SelectionItemPattern;
        if (selectionItemPattern != null)
        {
            try
            {
                selectionItemPattern.AddToSelection();
            }
            catch (InvalidOperationException)
            {
                // Unable to add to selection
                return;
            }
        }
    }
}
'''--------------------------------------------------------------------
''' <summary>
''' Attempts to add the current item to a collection 
''' of selected items. 
''' </summary>
''' <param name="selectionItem">
''' An automation element that supports SelectionItemPattern.
''' </param>
'''--------------------------------------------------------------------
Private Sub AddItemToSelection(ByVal selectionItem As AutomationElement)
    If selectionItem Is Nothing Then
        Throw New ArgumentNullException("Argument cannot be null or empty.")
    End If

    Dim selectionContainer As AutomationElement = _
    GetSelectionItemContainer(selectionItem)

    ' Selection container cannot be null
    If selectionContainer Is Nothing Then
        Throw New ElementNotAvailableException()
    End If

    Dim selectionPattern As SelectionPattern = DirectCast( _
    selectionContainer.GetCurrentPattern(selectionPattern.Pattern), _
    SelectionPattern)

    If selectionPattern Is Nothing Then
        Return
    End If

    If selectionPattern.Current.CanSelectMultiple Then
        Dim selectionItemPattern As SelectionItemPattern = DirectCast( _
        selectionItem.GetCurrentPattern(selectionItemPattern.Pattern), _
        SelectionItemPattern)

        If Not (selectionItemPattern Is Nothing) Then
            Try
                selectionItemPattern.AddToSelection()
            Catch
                ' Unable to add to selection
                Return
            End Try
        End If
    End If

End Sub

Dotyczy