Я сделал проверку правила для свойства.Я хочу, чтобы при невыполнении условия кнопка сохранения была отключена.Как я могу это сделать?Вот как это выглядит: image .Кнопка не отключена.
Это мой код
public string FieldName { get; set; }
public Regex regularExpression = new Regex("^[a-zA-Z]*$");
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
//var stringValue = value as string;
if (FieldName == "Age")
return AgeValidate(value);
if (FieldName == "Name")
return NameValidation(value);
return new ValidationResult(true, null);
}
private ValidationResult NameValidation(object value)
{
var onlyCharacters = regularExpression.IsMatch((string)value);
if (onlyCharacters)
return new ValidationResult(true, null);
else
return new ValidationResult(false, $"Only alfabetical charaters");
}
В XAML:
<Label Grid.Row="0" Grid.Column="0" Margin="103,0,98,10" Content="Name : " VerticalContentAlignment="Center" HorizontalContentAlignment="Right" Grid.ColumnSpan="2"/>
<TextBox Grid.Row="0" Grid.Column="1" x:Name="txtCourtName" Margin="113,4,-55,6" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" Validation.ErrorTemplate="{StaticResource errorTemplate}" >
<TextBox.Text>
<Binding Path="CourtName" ValidatesOnDataErrors="true" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local11:AuthValidation FieldName="Name"></local11:AuthValidation>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Кнопка:
<Button Content="Save" x:Name="btnSaveCourt" Command="{Binding SaveCourt}" Margin="2,10" Width="119" Background="#909090" Foreground="Black" BorderBrush="White" />
И мойшаблон для ошибки:
<ControlTemplate x:Key="errorTemplate">
<Border BorderBrush="OrangeRed" BorderThickness="2">
<Grid>
<AdornedElementPlaceholder>
<TextBlock Text="{Binding [0].ErrorContent}" Foreground="OrangeRed"
VerticalAlignment="Center" HorizontalAlignment="Right"
Margin="-220"
>
</TextBlock>
</AdornedElementPlaceholder>
</Grid>
</Border>
</ControlTemplate>