gpt4 book ai didi

wpf - 验证错误时禁用按钮

转载 作者:行者123 更新时间:2023-12-03 13:08:35 38 4
gpt4 key购买 nike

我有几个带有自定义验证器的文本框:
(我不介意是否将“错误”数据发送回对象(属性是字符串),如果出现错误,我只需要阻止按钮的功能,所以如果绑定(bind)不是正确的位置请告诉我一种验证。我只是喜欢我可以使用的 Validation.ErrorTemplate 支持)

<ControlTemplate x:Key="validator" >
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Right" Foreground="Red" FontSize="12pt">!</TextBlock>
<Border BorderBrush="Red" BorderThickness="1.0">
<AdornedElementPlaceholder />
</Border>
</DockPanel>
</ControlTemplate>

<TextBox Height="23" Width="150" TextWrapping="Wrap"
Validation.ErrorTemplate="{StaticResource validator}">
<TextBox.Text>
<Binding Path="StringProperty" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:NumbersOnly/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>

如果出现任何验证错误,如何禁用特定按钮?
<Button Content="DO Work"  Height="57" HorizontalAlignment="Left"  Name="button1" VerticalAlignment="Top" Width="234" Click="button1_Click" />

最佳答案

您可以使用 MultiDataTrigger位于 Style.Triggers 的属性(property)的 Button .假设我们有一个 TextBox命名为“txtName”。我们必须在 TextBox 的验证错误上禁用按钮“btnSave” .

这是您可以执行的操作:

<Button Content="Save" 
Grid.Column="1"
Grid.Row="3"
HorizontalAlignment="Right"
Height="23"
Name="btnSave"
Width="75"
IsDefault="True"
Command="{Binding SaveProtocolCommand}"
Margin="3">
<Button.Style>
<Style TargetType="Button">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=(Validation.HasError), ElementName=txtName}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value="True"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>

希望这会帮助你。

关于wpf - 验证错误时禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509541/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com