Fly*_*del 0 c# wpf user-controls routed-events
我有一个UserControl充当自定义按钮,但由于我更改了我的命名空间围绕路由点击事件不再有效.基本上我的命名空间看起来像这样:
UI
UI.Controls
UI.Pages
我有一个UI.Controls.CustomButton路由点击事件实现如下:
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);
}
Run Code Online (Sandbox Code Playgroud)
我试图从内部使用它UI.Pages.SomePage:
<controls:CustomButton Text="New..." Click="NewButton_Click"/>
Run Code Online (Sandbox Code Playgroud)
public void NewButton_Click(object sender, RoutedEventArgs e)
{
//do something here
}
Run Code Online (Sandbox Code Playgroud)
当我调试应用程序时,我看到RaiseEvent我UI.Controls.CustomButton的NewButton_Click内部被击中,但内部的我UI.Pages.SomePage从未被调用过.
当一切都在同一个命名空间时,这工作正常...我错过了一些明显的东西吗?谢谢!
RoutedEventArgs newEventArgs = new RoutedEventArgs(Button.ClickEvent);
Run Code Online (Sandbox Code Playgroud)
应该:
RoutedEventArgs newEventArgs = new RoutedEventArgs(CustomButton.ClickEvent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2988 次 |
| 最近记录: |