0

我有一个包含文本框和按钮的 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>

我在这里想念什么?

4

1 回答 1

0

提供ElementName给您的绑定,以便它可以正确绑定到您的 TextBox -

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

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

于 2013-11-11T18:30:21.593 回答