WPF Не получает перенаправленные события от пользователя

У меня есть UserControl которая действует как пользовательская кнопка, но, так как я изменил мои пространства имен вокруг перенаправленного события click, больше не работает. По сути, мои пространства имен выглядят примерно так:

UI
UI.Controls
UI.Pages

у меня есть UI.Controls.CustomButton который имеет перенаправленное событие click, реализованное примерно так:

public static readonly RoutedEvent ClickEvent = EventManager.RegisterRoutedEvent(
     "Click", 
     RoutingStrategy.Bubble, 
     typeof(RoutedEventHandler), 
     typeof(CustomButton));

public event RoutedEventHandler Click
{
     add { AddHandler(ClickEvent, value); }
     remove { RemoveHandler(ClickEvent, value); }
}

private void Border_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
     Border_MouseEnter(sender, e);
     RaiseClickEvent();
}

private void RaiseClickEvent()
{
     RoutedEventArgs newEventArgs = new RoutedEventArgs(Button.ClickEvent);
     RaiseEvent(newEventArgs);
}

И я пытаюсь использовать его изнутри UI.Pages.SomePage вот так:

XAML

<controls:CustomButton Text="New..." Click="NewButton_Click"/>

C#

public void NewButton_Click(object sender, RoutedEventArgs e)
{
    //do something here
}

Когда я отлаживаю приложение, я вижу, что RaiseEvent внутри моего UI.Controls.CustomButton бьют, но NewButton_Click внутри моего UI.Pages.SomePage никогда не называется.

Это работало, когда все было в одном пространстве имен... я что-то упускаю из виду? Спасибо!

1 ответ

Решение
RoutedEventArgs newEventArgs = new RoutedEventArgs(Button.ClickEvent);

должно быть:

RoutedEventArgs newEventArgs = new RoutedEventArgs(CustomButton.ClickEvent);
Другие вопросы по тегам