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