I have a DataGrid :
<DataGrid ItemsSource="{Binding CustomerXml}" Name="customersDataGrid" AutoGenerateColumns="False" DataContext="{Binding}"> <DataGrid.Columns> <DataGridTextColumn Header="Name"> <DataGridTextColumn.Binding> <Binding Path="Name" ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True"> <Binding.ValidationRules> <local:NameValidationRule/> </Binding.ValidationRules> </Binding> </DataGridTextColumn.Binding> </DataGridTextColumn> ... </DataGrid.Columns> </DataGrid>
and I'm trying to disable and enable the save button using the result of a ValidationRule .
<Button Content="Save" Name="save" Click="save_Click"> <Button.Style> <Style TargetType="{x:Type Button}"> <Setter Property="IsEnabled" Value="false" /> <Style.Triggers> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding ElementName=customersDataGrid, Path=(Validation.HasError)}" Value="false" /> </MultiDataTrigger.Conditions> <Setter Property="IsEnabled" Value="true" /> </MultiDataTrigger> </Style.Triggers> </Style> </Button.Style> </Button>
But if ValidationResult set to true or false, the button is still disabled.
source share