SelectionItemPattern.RemoveFromSelection 方法     
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从所选项的集合删除当前元素。
public:
 void RemoveFromSelection();public void RemoveFromSelection ();member this.RemoveFromSelection : unit -> unitPublic Sub RemoveFromSelection ()例外
尝试从已选定一项并且 IsSelectionRequiredProperty = true 的选择容器中移除一个选择。
示例
以下示例演示如何从当前选定项的集合中删除元素。
///--------------------------------------------------------------------
/// <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