【发布时间】:2015-01-11 12:39:04
【问题描述】:
我在一个窗口中有一些 (>20) 控件,每个控件都绑定到 ViewModel 的一个属性。
ViewModel 实现了IDataErrorInfo,以便进行一些验证,并且效果很好。
现在我在窗口中添加一个类似“提交”的按钮。如果任何控件出现验证错误,我想禁用该按钮。
虽然我可以使用DataTrigger 来做这样的伎俩:
<Button Content="Commit">
<Button.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=control1, Path=(Validation.HasError)}" Value="True">
<Setter Property="Button.IsEnabled" Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=control2, Path=(Validation.HasError)}" Value="True">
<Setter Property="Button.IsEnabled" Value="False" />
</DataTrigger>
<!-- DataTriggers for control3, 4, 5... -->
</Style.Triggers>
</Style>
</Button.Style>
</Button>
这将是一个很长的 XAML 代码,因为我在这个窗口中有 20 多个控件,所以我想知道有没有更好的解决方案?
【问题讨论】:
标签: c# wpf validation xaml