Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET Framework,WPF:取消函数引发事件_C#_.net_Wpf_Event Handling - Fatal编程技术网

C# .NET Framework,WPF:取消函数引发事件

C# .NET Framework,WPF:取消函数引发事件,c#,.net,wpf,event-handling,C#,.net,Wpf,Event Handling,我有一个函数来记录一个事件 public void Delete(bool raiseEvent) { if (raiseEvent) { RaiseEvent(new EdgeDeletedRoutedEventArgs(DeletedEvent, this)); } ....some other stuff } 我同意该职能如下: Class.Delete += SomethingDeleted; void S

我有一个函数来记录一个事件

public void Delete(bool raiseEvent)
{
       if (raiseEvent)
       {
           RaiseEvent(new EdgeDeletedRoutedEventArgs(DeletedEvent, this));
       }
       ....some other stuff
}
我同意该职能如下:

Class.Delete += SomethingDeleted;

void SomethingDeleted(object sender, EdgeDeletedRoutedEventArgs e)
{
    if (someCondition)
    {
        // here i want to cancel the delete function which raises the event
    }  
}
如何可以取消删除功能,以便在不中断我的应用程序的情况下不执行“其他内容”


我试图在SomethingDeleted中引发异常,并在Delete中捕获异常,但它会中断我的应用程序,并且我想让应用程序继续运行。

bool Cancel
属性添加到EdgeDeletedDrowedEventArgs(类似)


如果您确实不需要RouteEvent的功能,请使用常规事件(
EventHandler Delete;
)并从CancelEventArgs继承EdgeDeletedEventArgs

谢谢!正是我需要的!
public void Delete(bool raiseEvent)
{
       if (raiseEvent)
       {
           var args = new EdgeDeletedRoutedEventArgs(DeletedEvent, this);
           RaiseEvent(args);
           if (args.Cancel) return;
       }
       ....some other stuff
}

void SomethingDeleted(object sender, EdgeDeletedRoutedEventArgs e)
{
    if (someCondition)
    {
         e.Cancel = true;
         return;
    }  
}