【发布时间】:2013-11-11 13:44:14
【问题描述】:
我有一个包含文本框和按钮的 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>
我在这里错过了什么?
【问题讨论】:
-
您在 DataTrigger 绑定中错过了 ElementName。将您的 DataTrigger 更改为
<DataTrigger Binding="{Binding ElementName=Text1,Path=(Validation.HasError)}" Value="True">。