基本上,我有一堆文本框,用户可以填写。我有一个按钮,我希望在所有文本框都输入文本之前保持禁用状态。这是我正在使用的示例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,所以我将PreviewTextInput从TextBox中移除,但这并没有解决任何问题。我对为什么会发生这种情况感到完全困惑,因此任何帮助都将不胜感激。