Ich habe ein TextBox, bei dem das TextChanged-Ereignis deklarativ festgelegt ist. In einigen Fällen möchte ich diesen Wert programmgesteuert setzen. In diesen Fällen möchte ich das TextChanged-Ereignis deaktivieren, bis ich den Wert programmgesteuert gesetzt habe. Dann, wenn ich fertig bin, möchte ich den Ereignishandler wiederherstellen, um sich so zu verhalten, wie er war.
Für ein einzelnes TextBox kann ich dies wie folgt erreichen:
myTextBox.TextChanged -= myTextBox_TextChanged;
myTextBox.Text = "[Ein Wert]";
myTextBox.TextChanged += myTextBox_TextChanged;
Ich möchte jedoch diese Funktionalität in eine einzige Methode schreiben, auf die von mehreren Methoden aus zugegriffen werden kann. Ich versuche beispielsweise Folgendes zu tun:
private void UpdateTextValue(TextBox textBox, string newValue)
{
object eventHandler = textBox.TextChanged;
textBox.TextChanged -= eventHandler;
textBox.Text = newValue;
textBox.TextChanged += eventHandler;
}
Leider funktioniert dieser Ansatz nicht. Es kompiliert nicht einmal. Gibt es einen Weg, wie ich die Funktionalität, die ich oben gezeigt habe, in einer Methode wie der oben gezeigten encapsulieren kann? Wenn ja, wie?
Vielen Dank,