C# 未调用自定义事件处理程序

C# 未调用自定义事件处理程序,c#,wpf,C#,Wpf,我有一个选项卡项,其内容是自定义UserControl。每当从选项卡控件中删除选项卡项时,我想通知主窗口。我想在UserControl中引发一个事件,并让主窗口处理该事件。这是我的密码 在主窗口中: public static readonly RoutedEvent CloseTabEvent = EventManager.RegisterRoutedEvent( "CloseTab", RoutingStrategy.Bubble, typeof(RoutedEventHandler

我有一个选项卡项,其内容是自定义UserControl。每当从选项卡控件中删除选项卡项时,我想通知主窗口。我想在UserControl中引发一个事件,并让主窗口处理该事件。这是我的密码

在主窗口中:

public static readonly RoutedEvent CloseTabEvent = EventManager.RegisterRoutedEvent(
    "CloseTab", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MainWindow));

private void CloseTab(object sender, RoutedEventArgs e)
{
    Console.WriteLine("a tab item was removed");
}
在选项卡控件中:

RaiseEvent( new RoutedEventArgs(MainWindow.CloseTabEvent));

当我运行代码时,没有打印出“选项卡项已删除”。什么是使其工作的正确方法?

您的选项卡是否控制了一些默认事件处理程序,您可以利用这些默认事件处理程序进行自定义事件?我看到windows窗体中删除了一个控件。我使用wpf,但找不到适合我需要的事件处理程序。您的代码中是否缺少某些内容?我不知道。我读过这篇文章,但并不认为我需要CLR访问器(因为TabItems是以编程方式创建的,而不是通过xaml创建的),我认为,在这种情况下,这个事件--
CloseTabEvent
没有任何意义。因为,
RaiseEvent
必须在某个地方调用,它将是TabItem的关闭事件,例如-
按钮。单击