2

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

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

这是我的代码:

<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>
4

2 回答 2

5

ElementNameMultiDataTrigger里面是错误的。它应该OrgNoTextBox代替OrgNo.

于 2015-02-02T17:06:11.103 回答
0

喜欢它

 private void Grid_MouseMove_1(object sender, MouseEventArgs e)
    {
        btn.IsEnabled = false;
        if (txt.IsArrangeValid == true)
        {
            btn.IsEnabled = true;
        }
    }
于 2015-02-02T17:26:05.933 回答