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

时间:2012-07-18 11:44:58

标签: c# wpf design-patterns event-handling

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

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

此外,此模式是否有特定名称?

3 个答案:

答案 0 :(得分:12)

尝试做下一件事:

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

Window.Close += handlerLoad;

答案 1 :(得分:2)

会有类似以下的工作吗?

public void EventHandlerSubscription_Invoked(object sender, EventArgs args)
{
    _objectContainingEvent.MyEventHandler -= EventHandlerSubscription;
}

对不起,如果这不合理,我正在打字。

答案 2 :(得分:1)

请详细说明您项目的“内容”:您打算做什么 也许你会对手动重置事件感兴趣,只触发它 一旦除非你重置它们: http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx