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;
}
}