WPF:Textbox未触发OntInput事件

WPF:Textbox未触发OntInput事件,wpf,events,textbox,textinput,Wpf,Events,Textbox,Textinput,所以基本上,我有一堆用户可以填写的文本框。我有一个按钮,我想保持禁用状态,直到所有的文本框都输入了文本。下面是我正在使用的XAML文本框示例: <TextBox Name="DelayedRecallScore" TextInput="CheckTextBoxFilled" Width="24" /> 触发TextInput时,MessageBox未显示。作为一个实验,我尝试在PreviewTestePut上触发CheckTextBoxFilled(),但效果很好,这意味着无论出于

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

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

触发TextInput时,MessageBox未显示。作为一个实验,我尝试在PreviewTestePut上触发CheckTextBoxFilled(),但效果很好,这意味着无论出于何种原因,该函数都不会被调用。我还有一个由PreviewTestInput触发的验证函数,它可以正常工作。起初,我认为PreviewTimeput可能会以某种方式干扰TextInput,所以我将PreviewTimeput从文本框中移除,但这并没有解决任何问题。我完全不明白为什么会发生这种情况,所以任何帮助都将不胜感激

由于
TextBox
正在处理事件,因此未激发
TextInput
事件的处理程序。您可以尝试改用该事件,因为实际上您只想知道从
文本框
中添加或删除字符的时间

创建一个从文本框派生的新类。在新类中,重写ontextput方法。您的ontextOutput方法将在TextBox获取它之前被调用

改用“PreviewTestePut”,它会起作用。

我不知道,谢谢。我只是想,既然PreviewtInput是这样工作的,没有什么可以阻止TextInput以同样的方式工作。TextChanged工作得很好。WPF确实喜欢让本应简单的任务变得过于困难。我的意思是,如果事件永远不会发生,为什么要揭露它?荒唐的是的,我在发泄:D@EdFWIW,如果您将TextBox子类化,则可以处理该事件。但是我确实明白你的观点。是的,总是有一个解决办法,我通常喜欢WPF,我已经被最近这个项目的框架让简单的事情变得过于困难的事情咬了很多次,以至于我有点痛苦。多播代理怎么了?为什么它不在自己的事件之外触发用户指定的事件?这不会捕获空间。事件未被激发。
InitializeComponent();
textbox.AddHandler(TextBox.TextInputEvent, 
                   new TextCompositionEventHandler(TextBox_TextInput_1), 
                   true);
InitializeComponent();
textbox.AddHandler(TextBox.TextInputEvent, 
                   new TextCompositionEventHandler(TextBox_TextInput_1), 
                   true);