Xamarin Community Toolkit WeakEventManager

Eine Ereignisimplementierung, mit der der Garbage Collector ein Objekt sammeln kann, ohne Ereignishandler kündigen zu müssen.

Inspiriert von Xamarin.Forms.WeakEventManager.

Syntax

public WeakEventManager<TEventArgs>()

Methoden

Methoden Rückgabetyp BESCHREIBUNG
AddEventHandler(EventHandler<TEventArgs>, string eventName) void Fügt den Ereignishandler hinzu.
AddEventHandler(Action<TEventArgs>, string eventName) void Fügt den Ereignishandler hinzu.
RemoveEventHandler(EventHandler<TEventArgs>, string eventName) void Entfernt den Ereignishandler.
RemoveEventHandler(Action<TEventArgs>, string eventName) void Entfernt den Ereignishandler.
HandleEvent(object, TEventArgs, string void Ruft den Ereignishandler auf.
HandleEvent(TEventArgs, Zeichenfolge) void Ruft die Ereignisaktion auf.
RaiseEvent(object, TEventArgs, string void Ruft den Ereignishandler auf.
RaiseEvent(TEventArgs, string void Ruft die Ereignisaktion auf.

Beispiele

In diesem Abschnitt wird gezeigt, wie Sie diesen Typ verwenden.

Verwenden von EventHandler<T>

readonly WeakEventManager<string> _errorOcurredEventManager = new WeakEventManager<string>();

public event EventHandler<string> ErrorOcurred
{
    add => _errorOcurredEventManager.AddEventHandler(value);
    remove => _errorOcurredEventManager.RemoveEventHandler(value);
}

void OnErrorOcurred(string message) => _errorOcurredEventManager.RaiseEvent(this, message, nameof(ErrorOcurred));

Aktion<T verwenden>

readonly WeakEventManager<string> _weakActionEventManager = new WeakEventManager<string>();

public event Action<string> ActionEvent
{
    add => _weakActionEventManager.AddEventHandler(value);
    remove => _weakActionEventManager.RemoveEventHandler(value);
}

void OnActionEvent(string message) => _weakActionEventManager.RaiseEvent(message, nameof(ActionEvent));

API