Hallo zusammen,
ich mache aktuell die Ausbildung und bin grade dabei mir ein bisschen C# - WPF beizubringen.
Ich habe nur um das ganze mal zu veranschaulichen zum Beispiel eine Textbox, diese ist gebindet an ein Model. In die Textbox soll der Vorname rein kommen, daher möchte ich
das keine Zahlen akzeptiert werden bzw. garnicht erst möglich ist einzutippen.
Mein aktueller Lösungsansatz:
XAML:
<TextBox x:Name="VornameTextBox" PreviewTextInput="OnlyText" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center"
HorizontalAlignment="Left" Width="80" Height="40" Text="{Binding Data.Vorname, UpdateSourceTrigger=PropertyChanged}" />
im Code-Behind:
public void OnlyText(object sender, TextCompositionEventArgs e)
{
Regex regex = new Regex("^[a-zA-Z]+$");
e.Handled = !regex.IsMatch(e.Text);
}
Das funktioniert soweit auch gut, da mir aber angeraten wurde mich mit dem MVVM Pattern vertraut zu machen, habe ich mir die Frage gestellt wie man die selbe Funktion mit MVVM umsetzen könnte. Es muss nicht 1 zu 1 genau sein, es reicht ja auch wenn beispeilsweise eine Meldung kommt, in der es dann sowas wie "Keine Zahlen möglich'" heißt.
Könntet ihr mir bitte weiterhelfen.
Bitte Code in Zukunft selbst in Tags packen, niemand hat Lust Plaintext zu lesen
[Hinweis] Wie poste ich richtig?
Siehe Commands bzw. Trigger in [Artikel] MVVM und DataBinding
Hier vermutlich eher ein Trigger.
Input Validation in WPF macht man aber eh anders, siehe Gewusst wie: Implementieren der Bindungsvalidierung - WPF .NET Framework
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code