嗨,我需要验证我的应用程序中的一些文本框.我决定使用验证规则"DataErrorValidationRule".这就是为什么在我的课上我实现了IDataErrorInfo接口并编写了aproperiate函数.在我的xaml代码中,我向文本框添加了绑定和验证规则
<TextBox x:Name="txtName" Grid.Column="3" Grid.Row="1" TextAlignment="Center" >
<TextBox.Text>
<Binding Path="Name" >
<Binding.ValidationRules>
<DataErrorValidationRule></DataErrorValidationRule>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
验证此文本框是正常的 - 我的意思是如果数据错误,文本框上会出现红框.然而,我需要做的是在该文本框上显示工具提示,但更重要的是,如果任何文本框有错误的数据,我必须禁用"运行"按钮.什么是最好的方法?
编辑第一个问题解决了,但我有另一个问题.我需要使用MultiBindings来验证我的Button.所以我做了那样的事
<Button x:Name="btnArrange" Grid.Column="0" Content="Rozmie??" Click="btnArrange_Click" >
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Value="False">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource BindingConverter}">
<Binding ElementName="txtName" Path="Validation.HasError" />
<Binding ElementName="txtSurname" Path="Validation.HasError"/>
<Binding ElementName="txtAddress" Path="Validation.HasError"/>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
Run Code Online (Sandbox Code Playgroud)
我的转换器看起来像那样
public class Converters : IMultiValueConverter
{
#region IMultiValueConverter Members
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if(values !=null …Run Code Online (Sandbox Code Playgroud)