Moin,
ich versuch gerade die Eingabe in eine Textbox zu validieren.
Dazu habe ich folgende ValidationRule:
und folgendes im XAML
Im Debugger kann ich einen Haltepunkt auf die ValidationRule setzen, der wird auch erreicht, ich sehe nur nichts in meinem Window.
Warum??
Gruß
HamburgerJungeJr
P.S. Anzahl ist eine String-Property
ich versuch gerade die Eingabe in eine Textbox zu validieren.
Dazu habe ich folgende ValidationRule:
C#-Quellcode
- class RegExValidator :ValidationRule{
- private String regex;
- private String errorMessage;
- public RegExValidator() {
- }
- public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
- if (Regex.IsMatch(value as String, RegEx)) {
- return new ValidationResult(true, null);
- } else {
- return new ValidationResult(false, ErrorMessage);
- }
- }
- public String RegEx {
- get {
- return regex;
- }
- set {
- regex = value;
- }
- }
- public String ErrorMessage {
- get {
- return errorMessage;
- }
- set {
- errorMessage = value;
- }
- }
- }
und folgendes im XAML
XML-Quellcode
- <Window.Resources>
- <ControlTemplate x:Key="validationTemplate">
- <DockPanel >
- <TextBlock Margin="0 0 5 0" Text="!" FontSize="14" FontWeight="Bold" Foreground="Red"/>
- <AdornedElementPlaceholder x:Name="adornedElement"/>
- </DockPanel>
- </ControlTemplate>
- </Window.Resources>
- <Grid Margin="10">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="100" />
- <ColumnDefinition Width="10" />
- <ColumnDefinition Width="250" />
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="100" />
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <Label Grid.Row="5" Grid.Column="0" Content="Anzahl" Style="{StaticResource labelStyle}"/>
- <TextBox Grid.Row="5" Grid.Column="2" Validation.ErrorTemplate="{StaticResource validationTemplate}" Width="100" Height="20">
- <!--Style="{StaticResource textboxStyle}"-->
- <Binding Path="Anzahl" UpdateSourceTrigger="PropertyChanged" Source="{StaticResource BarcodeGeneratorViewModel}">
- <Binding.ValidationRules>
- <v:RegExValidator RegEx="^[0-9]*$" ErrorMessage="Das Feld darf nur Zahlen enthalten." ValidationStep="RawProposedValue"/>
- </Binding.ValidationRules>
- </Binding>
- </TextBox>
- </Grid>
Im Debugger kann ich einen Haltepunkt auf die ValidationRule setzen, der wird auch erreicht, ich sehe nur nichts in meinem Window.
Warum??

Gruß
HamburgerJungeJr
P.S. Anzahl ist eine String-Property