Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

SelectionItemPattern.RemoveFromSelection Method

Definition

Namespace:
System.Windows.Automation
Assembly:
UIAutomationClient.dll

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Removes the current element from the collection of selected items.

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

Exceptions

An attempt is made to remove a selection from a selection container where one item is selected and IsSelectionRequiredProperty = true.

Examples

The following example shows how to remove an element from the collection of currently selected items.

///--------------------------------------------------------------------
/// <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 remove the current item from a collection 
/// of selected items. 
/// </summary>
/// <param name="selectionItem">
/// An automation element that supports SelectionItemPattern.
/// </param>
///--------------------------------------------------------------------
private void RemoveItemFromSelection(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;
 }

 // Check if a selection is required
 if (selectionPattern.Current.IsSelectionRequired && 
 (selectionPattern.Current.GetSelection().GetLength(0) <= 1))
 {
 return;
 }

 SelectionItemPattern selectionItemPattern =
 selectionItem.GetCurrentPattern(
 SelectionItemPattern.Pattern)
 as SelectionItemPattern;
 if ((selectionItemPattern != null) && 
 selectionItemPattern.Current.IsSelected)
 {
 try
 {
 selectionItemPattern.RemoveFromSelection();
 }
 catch (InvalidOperationException)
 {
 // Unable to remove from selection
 return;
 }
 }
}
'''--------------------------------------------------------------------
''' <summary>
''' Attempts to remove the current item from a collection 
''' of selected items. 
''' </summary>
''' <param name="selectionItem">
''' An automation element that supports SelectionItemPattern.
''' </param>
'''--------------------------------------------------------------------
Private Sub RemoveItemFromSelection( _
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

 ' Check if a selection is required
 If selectionPattern.Current.IsSelectionRequired AndAlso _
 selectionPattern.Current.GetSelection().GetLength(0) <= 1 Then
 Return
 End If

 Dim selectionItemPattern As SelectionItemPattern = DirectCast( _
 selectionItem.GetCurrentPattern(selectionItemPattern.Pattern), _
 SelectionItemPattern)

 If Not (selectionItemPattern Is Nothing) AndAlso selectionItemPattern.Current.IsSelected Then
 Try
 selectionItemPattern.RemoveFromSelection()
 Catch
 ' Unable to remove from selection
 Return
 End Try
 End If
End Sub

Applies to


Feedback

Was this page helpful?