Tak więc, w zasadzie mam kilka pól TextBox, które użytkownik wypełnia. Mam przycisk, który chcę wyłączyć, dopóki wszystkie TextBoxy nie wprowadzą w nich tekstu. Oto przykład XAML tekstowe, które używam:WPF: Pole tekstowe nie uruchamia się na zdarzeniuTextInput
<TextBox Name="DelayedRecallScore" TextInput="CheckTextBoxFilled" Width="24" />
I tu jest funkcja, która próbuję wywołać:
//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");
}
MessageBox nie pokazuje się, gdy TextInput powinien być coraz rozsierdzony. Jako eksperyment próbowałem wywoływać CheckTextBoxFilled() na PreviewTextInput i działało to dobrze, co oznacza, że z jakiegoś powodu funkcja ta nie jest wywoływana. Mam również funkcję sprawdzania poprawności, która jest uruchamiana przez PreviewTextInput, który działa tak jak powinien. Najpierw myślałem, że funkcja PreviewTextInput może w jakiś sposób zakłócać działanie TextInput, więc wziąłem PreviewTextInput z TextBox, ale to nie udało się naprawić niczego. Jestem całkowicie zdumiony tym, dlaczego tak się stanie, więc każda pomoc będzie doceniona.
co stało się z delegatami multiemisji? dlaczego nie miałby wywołać zdarzenia przypisanego przez użytkownika oprócz własnego? –