WPF:文本框不触发 onTextInput 事件

标签 wpf events textbox textinput

所以基本上,我有一堆用户可以填写的文本框。我有一个按钮,我想一直禁用它,直到所有的 TextBox 都输入了文本。这是我正在使用的示例 XAML 文本框:

<TextBox Name="DelayedRecallScore" TextInput="CheckTextBoxFilled" Width="24" />

这是我试图触发的功能:
  //Disables the OK button until all score textboxes have content
    private void CheckTextBoxFilled(object sender, RoutedEventArgs e)
    {
        /*
        foreach (TextBox scorebox in TextBoxList)
        {
            if (string.IsNullOrEmpty(scorebox.Text))
            {
                Ok_Button.IsEnabled = false;
                return;
            }
        }
        Ok_Button.IsEnabled = true;
         */
        MessageBox.Show("THIS MAKES NO SENSE");
    }

当 TextInput 应该被触发时,MessageBox 没有出现。作为一个实验,我尝试在 PreviewTextInput 上触发 CheckTextBoxFilled(),然后它运行良好,这意味着无论出于何种原因,该函数都没有被调用。我还有一个由 PreviewTextInput 触发的验证函数,它可以正常工作。起初我认为 PreviewTextInput 可能会以某种方式干扰 TextInput,所以我从 TextBox 中删除了 PreviewTextInput,但这并没有解决任何问题。我完全不明白为什么会发生这种情况,所以任何帮助将不胜感激。

最佳答案

您的 TextInput 处理程序事件未触发,因为 TextBox正在处理事件。您可以尝试使用 TextChanged取而代之的是事件,因为实际上您只想知道何时从 TextBox 中添加或删除了字符。 .

关于WPF:文本框不触发 onTextInput 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1374710/

相关文章:

c# - WPF, Prism : How to access non-static method in other module?

vb.net - 使多次按键事件更短 vb.net

ActionScript 3 EventDispatcher 的 Javascript 实现

c# - 跟踪监听器以写入文本框(WPF 应用程序)

.net - 在 VB.NET 中检查空的 TextBox 控件

wpf - 检测FlowDocument更改并滚动

wpf - 在 WPF 中,是否有 "render complete"事件?

c# - 如何清除 Linq To Sql 中的更改?

javascript - 下面的 javascript 片段有什么不同吗?

java - JComponent 和 ComponentUI 委托(delegate)之间的绑定(bind)事件