我有一个包含文本框和按钮的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>
我在这里缺少什么?
答案 0 :(得分:0)
为绑定提供ElementName
,以便可以将其正确绑定到TextBox -
<DataTrigger Binding="{Binding Path=(Validation.HasError), ElementName=Text1}"
Value="True">
现在您可以在输出窗口中看到绑定错误。