C# WPF如何给Window添加KeyUp事件并使用一个在其他Page的Handler。

我正在做一个WPF的Project,然后我大概是这么组织代码的:

MainWindow.xaml         (Contains a NavigationWindow)
  MainWindow.xaml.cs
HomePage.xaml           (Contains a series of function)
  HomePage.xaml.cs

然后我希望添加一个KeyUp事件,让用户按下Enter的时候调用一个在HomePage.xaml.cs里面的Handler。然后我发现给Page添加这么个KeyUp事件并没有效果,所以我就把它attach到MainWindow.xaml里面的那个NavigationWindow。但是因为Handler在HomePage.xaml.cs里面,然后我就在HomePage的构造器里面写了:

var window = Window.GetWindow(this);
((MainWindow) window).KeyUp += new  System.Windows.Input.KeyEventHandler(this.Window_KeyUp);

但是运行的时候报错System.NullReferenceException,这是为什么啊。

谢谢大家。

阅读 4.1k
1 个回答

这个要用委托吧。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进