需要创建一个事件处理程序,可以在事件发生时自行删除

m-y*_*m-y 3 c# wpf design-patterns event-handling

我不太确定如何做到这一点,因为我还没有对这种模式的需求.我正在寻找在单独的类中创建事件处理程序的正确模式,该类可以在包含事件的对象执行时自行删除.

基本上,我想EventHandler在WPF Window.Close事件中创建一个.并且,在执行处理程序期间,它将自己从Window.Close事件中删除.我希望这个具体到足以继续下去.

此外,这个模式还有一个特定的名称吗?

Rre*_*Cat 12

尝试做下一个事情:

 RoutedEventHandler handlerLoad = null;
 handlerLoad = delegate
        {
            //Do something
            Window.Close -= handlerLoad;
        };

Window.Close += handlerLoad;
Run Code Online (Sandbox Code Playgroud)

  • 我认为这个解决方案依赖于系统按照它们注册的顺序执行事件处理程序.这是一个实现细节,不是Microsoft保证的,因此我不会依赖它. (3认同)