Есть некоторый кусочек кода
var d = new MouseEventHandler((o, e) =>
{
wnd.WindowState = WindowState.Normal;
wnd.DragMove();
});
wnd.PreviewMouseMove += d;
Требуется отписаться от события PreviewMouseMove внутри тела делегата. То есть событие должно сработать один раз. Как это сделать?
UPD:
Хотелось бы без создания именованной функции.
Ответ
Чтобы переменная d была видна внутри замыкания - ее надо объявить до этого самого замыкания.
MouseEventHandler d = null;
d = new MouseEventHandler((o, e) =>
{
wnd.PreviewMouseMove -= d;
wnd.WindowState = WindowState.Normal;
wnd.DragMove();
});
wnd.PreviewMouseMove += d;
Комментариев нет:
Отправить комментарий