2010-09-20 27 views

Odpowiedz

3

Nie możesz tego zrobić, niestety. Można utworzyć lokalny w celu zachowania wartości lambda, jeśli zdarzenie zostanie usunięte w tym samym zakresie:

Binding bndTitle = this.DataBindings.Add("Text", obj, "Title"); 
EventHandler handler = (sender, e) => 
{ 
    e.Value = "asdf" + e.Value; 
}; 

bndTitle.Format += handler; 
// ... 
bndTitle.Format -= handler; 
+0

Nie można "Nie można przypisać wyrażenia lambda do niejawnie wpisanej zmiennej lokalnej". Musiałby to być ConvertEventHandler handler = (nadawca, e) => { e.Value = "asdf" + e.Value; }; –

+0

A ponieważ musisz przypisać mu typ, nie może on być anonimowy. –

+0

@Richard Hein się mylisz, metoda może być anonimowa, ale mieć typ (przekonwertować na delegata). Anonimowość metody (lambda) oznacza, że ​​nie można jej wymieniać według nazwy. – Andrey