小编sty*_*lus的帖子

wpf - 验证 - 如何显示工具提示并禁用"运行"按钮

嗨,我需要验证我的应用程序中的一些文本框.我决定使用验证规则"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)

validation wpf

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

validation ×1

wpf ×1