EventHandler einer Variablen zuordnen

realbora

Mitglied
Hallo,

kann mir hier zufällig jemand verraten ob ,und wenn ja, wie es möglich ist in c# einer Variablen einen EventHandler zuzuordnen.
Dieses Event soll dann bei jeder Änderung der Variablen gefeuert werden.
Ich habe die Forensuche schon genutzt und auch was dazu gefunden, was mir aber leider nicht wirklich weiterhilft.

Vielen Dank
 
Dazu erstellst du dir am besten eine Eigenschaft zur Variablen mit welcher du arbeitest:
C#:
private string _sName = "";

/// <summary>
/// Ruft den Namen der Instanz ab oder legt diesen fest.
/// </summary>
public string Name
{
    get
    {
        return _sName;
    }
    set
    {
		// In Value ist der Wert gespeichert
		// welcher zugewiesen wurde
        OnNameChanged(value);
    }
}

/// <summary>
/// Löst das NameChanged Event aus.
/// </summary>
/// <param name="sNewName">Der neue Name der Instanz.</param>
protected virtual void OnNameChanged(string sNewName)
{
    _sName = sNewName;
    
    if(_evNameChanged != null)
    {
        _evNameChanged(this, EventArgs.empty);
    }
}

private event EventHandler _evNameChanged;

/// <summary>
/// Wird ausgelöst wenn der Name geändert wurde. 
/// </summary>
public event EventHandler NameChanged
{
    add
    {
		// Beim Hinzufügen
        _evNameChanged += value;
    }
    remove
    {
		// Beim Entfernen
		 _evNameChanged -= value;
    }
}

Sobald du dann this.Name = "RealBora" aufrufst, wird der Wert an OnNameChanged übergeben welcher den internen Wert festlegt und das Event auslöst. Arbeiten musst du dann hald immer mit Name und nicht mit _sName

Ich hab mir den ganzen Kram in ein Snippet gelegt. Somit muss ich nicht immer die ganzen Event-Scherze für die einzelnen Eigenschaften implementieren. Kann ich nur empfehlen.

Gruß Daniel
 

Neue Beiträge

Zurück