【问题标题】:Enable button when textbox is validated in WPF在 WPF 中验证文本框时启用按钮
【发布时间】:2015-04-01 16:48:42
【问题描述】:

我正在尝试在验证文本框时禁用/启用按钮。

我得到了验证(我知道它有效,因为它改变了设计)。 但是当文本框被验证时,我似乎无法让按钮从禁用更改为启用。

这是我的代码:

<AdornerDecorator>
    <TextBox Width="150"
             Validation.ErrorTemplate="{StaticResource ValidationErrorTemplate}"
             x:Name="OrgNoTextBox">
        <TextBox.Text>
            <Binding Path="Customer.OrgNo" UpdateSourceTrigger="PropertyChanged" >
                <Binding.ValidationRules>
                    <client:RegexValidationRule ValidatesOnTargetUpdated="True" Pattern="OrgNo" />
                </Binding.ValidationRules>
            </Binding>
        </TextBox.Text>
    </TextBox>
</AdornerDecorator>

...

<Button Width="80"
        Height="25" 
        Margin="0 0 5 0" 
        Command="{Binding OkCommand}" 
        HorizontalAlignment="Left" 
        IsDefault="True" 
        Content="Save">
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Setter Property="IsEnabled" Value="false" />
            <Style.Triggers>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding  ElementName=OrgNo, Path=(Validation.HasError)}" 
                                       Value="false" />
                    </MultiDataTrigger.Conditions>
                    <Setter Property="IsEnabled" 
                            Value="true" />
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

【问题讨论】:

    标签: c# wpf validation multidatatrigger


    【解决方案1】:

    您在MultiDataTrigger 中的ElementName 是错误的。它应该是OrgNoTextBox 而不是OrgNo。

    【讨论】:

    • 谢谢!我的简单错误的简单解决方案。尝试了大约一个小时不同的东西。
    【解决方案2】:

    喜欢

     private void Grid_MouseMove_1(object sender, MouseEventArgs e)
        {
            btn.IsEnabled = false;
            if (txt.IsArrangeValid == true)
            {
                btn.IsEnabled = true;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      相关资源
      最近更新 更多