路由事件处理程序未正确添加到指定的元素



我正在尝试使用以下代码行通过代码将RoutedEventHandler添加到所有TextBoxes

this.AddHandler(TextBox.GotFocusEvent, new RoutedEventHandler(textBox_GotFocus));

上面的代码将处理程序绑定到窗口上的所有窗体控件,而不是单独的文本框。请有人可以

  1. 解释为什么会发生这种情况
  2. 以及如何正确地做到这一点。

谢谢。

可能不完全是你所追求的,因为它仍然会在每个 UIElement 上触发。 但是,您可以执行以下操作以获得所需的"最终结果"。

    public void textBox_GotFocus(object sender, RoutedEventArgs e)
    {
        var textBox = e.Source as TextBox;
        if (textBox == null)
            return;
        //what ever you wanted to do
    }

最新更新