在 WPF 中验证文本框时启用按钮
Enable button when textbox is validated in WPF
我正在尝试 disable/enable 验证文本框时的按钮。
我的验证工作正常(我知道它工作正常是因为它改变了设计)。
但是我似乎无法在文本框验证时将按钮从禁用更改为启用。
这是我的代码:
<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>
你在MultiDataTrigger
中的ElementName
是错误的。它应该是 OrgNoTextBox
而不是 OrgNo
.
喜欢
private void Grid_MouseMove_1(object sender, MouseEventArgs e)
{
btn.IsEnabled = false;
if (txt.IsArrangeValid == true)
{
btn.IsEnabled = true;
}
}
我正在尝试 disable/enable 验证文本框时的按钮。
我的验证工作正常(我知道它工作正常是因为它改变了设计)。 但是我似乎无法在文本框验证时将按钮从禁用更改为启用。
这是我的代码:
<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>
你在MultiDataTrigger
中的ElementName
是错误的。它应该是 OrgNoTextBox
而不是 OrgNo
.
喜欢
private void Grid_MouseMove_1(object sender, MouseEventArgs e)
{
btn.IsEnabled = false;
if (txt.IsArrangeValid == true)
{
btn.IsEnabled = true;
}
}