つまり、基本的に、ユーザーが入力できる TextBox がたくさんあります。すべての TextBoxes にテキストが入力されるまで無効にしたいボタンがあります。以下は、私が使用している XAML TextBox のサンプルです。
<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 から外しましたが、何も修正されていません。なぜこれが起こるのか、私は完全に困惑しているので、助けていただければ幸いです。