Fügen Sie ein Vorschau-Texteingabeereignis hinzu. Wie so: <TextBox PreviewTextInput="PreviewTextInput" />
.
Dann im Inneren setzen Sie den e.Handled, wenn der Text nicht erlaubt ist.
e.Handled = !IsTextAllowed(e.Text);
Ich benutze eine einfache regex in IsTextAllowed zu sehen, ob ich erlauben sollte, was sie eingegeben haben. In meinem Fall möchte ich nur Zahlen, Punkte und Bindestriche zulassen.
private static bool IsTextAllowed(string text)
{
Regex regex = new Regex("[^0-9.-]+"); //regex that matches disallowed text
return !regex.IsMatch(text);
}
Wenn Sie das Einfügen von falschen Daten verhindern wollen DataObject.Pasting="TextBoxPasting"
die DataObject.Pasting Ereignis anschließen, wie hier gezeigt (Code exzerpiert):
// Use the DataObject.Pasting Handler
private void TextBoxPasting(object sender, DataObjectPastingEventArgs e)
{
if (e.DataObject.GetDataPresent(typeof(String)))
{
String text = (String)e.DataObject.GetData(typeof(String));
if (!IsTextAllowed(text))
{
e.CancelCommand();
}
}
else
{
e.CancelCommand();
}
}
Also meinen Sie eine positive oder negative Ganzzahl wie 1234 oder -1234 oder meinen Sie etwas, das ein "-" Zeichen wie 800-555-5555 hat? –