UIElement.RemoveHandler(RoutedEvent, Delegate) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Remove o gestor de eventos encaminhados especificado deste elemento.
public:
virtual void RemoveHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void RemoveHandler(System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member RemoveHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.RemoveHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub RemoveHandler (routedEvent As RoutedEvent, handler As Delegate)
Parâmetros
- routedEvent
- RoutedEvent
O identificador do evento encaminhado para o qual o manipulador está ligado.
- handler
- Delegate
A implementação específica do handler para remover da coleção de handlers de eventos neste elemento.
Implementações
Exemplos
O exemplo seguinte é usado RemoveHandler como parte de uma definição de event wrapper.
public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent(
"Tap", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyButtonSimple));
// Provide CLR accessors for the event
public event RoutedEventHandler Tap
{
add { AddHandler(TapEvent, value); }
remove { RemoveHandler(TapEvent, value); }
}
Public Shared ReadOnly TapEvent As RoutedEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyButtonSimple))
' Provide CLR accessors for the event
Public Custom Event Tap As RoutedEventHandler
AddHandler(ByVal value As RoutedEventHandler)
Me.AddHandler(TapEvent, value)
End AddHandler
RemoveHandler(ByVal value As RoutedEventHandler)
Me.RemoveHandler(TapEvent, value)
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
Me.RaiseEvent(e)
End RaiseEvent
End Event
Observações
O cenário mais comum para usar esta API é quando se implementa o evento "wrapper" de common language runtime (CLR) associado a um evento encaminhado personalizado, especificamente quando se implementa a lógica de "remove" para handlers ao nível CLR. O exemplo que se segue a esta secção de observações ilustra este cenário.
Chamar este método não tem efeito se não houver handlers registados com critérios que correspondam aos parâmetros de entrada para a chamada do método.
Se mais do que um handler estiver associado que corresponda aos critérios, apenas o primeiro handler na loja de event handlers é removido. Este comportamento é consistente com o comportamento CLR do -= operador.
Nem routedEvent pode handler ser null. Tentar fornecer qualquer um dos valores como null irá levantar uma exceção.
Este método ignora a handledEventsToo informação dos parâmetros, que é fornecida se o handler foi primeiro adicionado com a AddHandler(RoutedEvent, Delegate, Boolean) assinatura que permite o tratamento de eventos já tratados. Qualquer tipo de manipulador é removido.