基本的に、私はユーザーが記入するTextBoxesの束を持っています。すべてのTextBoxにテキストが入力されるまで、無効にしたいボタンがあります。ここで私が使用しているサンプルのXAMLのテキストボックスである:WPF:TextBoxがTextInputイベントを発生させない
<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コントロールを取得しなければならない時に表示されませんトリガーされた。実験として、私はPreviewTextInputでCheckTextBoxFilled()を起動しようとしました。それはうまくいきました。なぜなら、何らかの理由で関数が呼び出されていないからです。また、PreviewTextInputによってトリガされる検証関数があります。これは正常に動作します。最初は、PreviewTextInputが何らかの形でTextInputを妨害している可能性があるので、PreviewTextInputをTextBoxから取り出しましたが、何も修正できませんでした。なぜこのようなことが起こるのか、私は完全に勘違いしているので、どんな助けもありがたいです。
マルチキャストデリゲートはどうなりましたか?それはなぜそれがそれ自身のものに加えてユーザー割り当てのイベントを発射しないでしょうか? –