根据文本框的验证启用/禁用按钮不起作用

时间:2013-11-11 13:44:15

标签: .net wpf

我有一个包含文本框和按钮的WPF用户控件。 文本框具有关联的验证规则(执行某些业务规则。此类实现ValidationRule)。 需要根据文本框验证结果启用/禁用该按钮。

文本框的验证正确发生。

按钮的启用/禁用未正确执行。 启用该按钮后,即使文本框的验证结果,也不会禁用该按钮 错误。

      <TextBox MaxLength="3" Width="40" Margin="5" x:Name="Text1" HorizontalContentAlignment="Center">
                <TextBox.Text>
                    <Binding Path="Densities[0].Value" UpdateSourceTrigger="PropertyChanged" >
                        <Binding.ValidationRules>
                            <administration:ValidateDensityRule/>
                        </Binding.ValidationRules>
                    </Binding>
                </TextBox.Text>
      </TextBox>

按钮Xaml

<Button.Style>
    <Style TargetType="{x:Type Button}" BasedOn="{StaticResource ButtonStyle}">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Text1,Path=(Validation.HasError)}" Value="True">
                                <Setter Property="IsEnabled" Value="False"></Setter>                                    
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Button.Style>

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

为绑定提供ElementName,以便可以将其正确绑定到TextBox -

<DataTrigger Binding="{Binding Path=(Validation.HasError), ElementName=Text1}" 
             Value="True">

现在您可以在输出窗口中看到绑定错误。