2010-06-10 81 views
0

在我的用户控件中,我有几个文本框,例如Textbox1,Textbox2。WPF - 处理特定控件实例的父项中的RoutedEvent

在父我只想处理来自Textbox1的提出的KeyDown事件,并不是所有的文本框

我在父增加了处理器

this.AddHandler(TextBox.KeyDownEvent, new RoutedEventHandler(OnTextboxGoToPageKeyDown)); 

但当然,这将处理所有的KeyDown事件,我不想要。

我是否必须在RoutedEventHandler中添加一些条件逻辑来检查事件是从哪里引发的?

还是有更好的办法?

这样做的最好方法是什么?

谢谢。

+0

难道你不能只订阅TextBox1.KeyDown吗? – 2010-06-10 12:50:09

+0

AddHandler方法只接受不是实例的类。 – empo 2010-06-10 13:23:00

回答

0

您的OnTextboxGoToPageKeyDown中的RoutedEventArgs有一个名为Source的属性,该属性具有对引发该事件的对象的引用。当你需要执行你的逻辑时,你可以要求这个属性。

HTH

+0

是的,我认为是。除了它的OriginalSource属性不是Source。 – empo 2010-06-10 14:19:09

+0

对,对不起。 – Marcote 2010-06-10 15:01:25

相关问题