SelectionItemPattern.RemoveFromSelection Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Supprime l’élément actuel de la collection d’éléments sélectionnés.
public:
void RemoveFromSelection();
public void RemoveFromSelection ();
member this.RemoveFromSelection : unit -> unit
Public Sub RemoveFromSelection ()
Exceptions
Une tentative est faite pour supprimer une sélection d’un conteneur de sélection où un élément est sélectionné alors que IsSelectionRequiredProperty = true
.
Exemples
L’exemple suivant montre comment supprimer un élément de la collection d’éléments actuellement sélectionnés.
///--------------------------------------------------------------------
/// <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