我的PCL中有一个create-account页面,其中有一个依赖于几个输入字段的按钮。
我只想在字段有正确的输入时启用Create按钮。这是我的标记:
<Button Text="Create Account" Clicked="CreateAccountButton_Clicked" IsEnabled="False">
<Button.Triggers>
<MultiTrigger TargetType="Button">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding Source={x:Reference EmailValidator}, Path=IsValid}" Value="True" />
<BindingCondition Binding="{Binding Source={x:Reference PasswordValidator}, Path=IsValid}" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="IsEnabled" Value="True" />
</MultiTrigger>
</Button.Triggers>
</Button>我已经验证了验证器正在将其IsValid属性设置为True,但是该按钮并未启用。我使用的是Android模拟器和Visual Studio 2019。
上面的代码和我在网上找到的几个例子是一样的。
我是不是遗漏了什么?
发布于 2020-04-01 00:00:57
在您的Xaml中:
<ResourceDictionary>
<local:MultiTriggerConverter x:Key="DataHasBeenEnteredTrigger" />
</ResourceDictionary>我的例子:
<Button IsEnabled="False" Text="{localization:Translate login}" Margin="25,0" TextColor="{StaticResource color-fourth}" BackgroundColor="Yellow" Opacity="0.5" FontAttributes="Bold" Command="{Binding GoConnexionCommand}" >
<Button.Triggers>
<MultiTrigger TargetType="Button">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding Source={x:Reference user},
Path=Text.Length,
Converter={StaticResource DataHasBeenEnteredTrigger}}"
Value="true" />
<BindingCondition Binding="{Binding Source={x:Reference password},
Path=Text.Length,
Converter={StaticResource DataHasBeenEnteredTrigger}}"
Value="true" />
</MultiTrigger.Conditions>
<Setter Property="IsEnabled" Value="True" />
<Setter Property="Opacity" Value="1" />
</MultiTrigger>
</Button.Triggers>转换类:
public class MultiTriggerConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null) return false;
if ((int)value > 0) return true;
else return false; // Input is empty
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}测试一下,告诉我它是什么样子的!
最佳回归率
https://stackoverflow.com/questions/56228226
复制相似问题