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