C# Xamarin表单验证。聚合多个控制行为的结果
我有一个有3-4个入口控件的页面。我创建了一个行为来验证这些条目。我还扩展了entry类,使其具有边框、边框颜色和边框半径。所以Xaml是这样的C# Xamarin表单验证。聚合多个控制行为的结果,c#,validation,xaml,xamarin,xamarin.forms,C#,Validation,Xaml,Xamarin,Xamarin.forms,我有一个有3-4个入口控件的页面。我创建了一个行为来验证这些条目。我还扩展了entry类,使其具有边框、边框颜色和边框半径。所以Xaml是这样的 <controls:ExtendedEntry x:Name="emailaddressEntry" Grid.Row="0" Grid.Column="1"
<controls:ExtendedEntry x:Name="emailaddressEntry"
Grid.Row="0"
Grid.Column="1"
BorderColor="Black"
HasBorder="True"
IsEnabled="True"
Placeholder="Email Address"
Text="{Binding EmailAddress}">
<controls:ExtendedEntry.Behaviors>
<v:EntryValidatorBehavior x:Name="EmailAddressValidator"
IsCheckEmail="True"
IsCheckEmpty="True" />
</controls:ExtendedEntry.Behaviors>
</controls:ExtendedEntry>
<Button Command="{Binding OnCreateCommand}" Text="Submit Account Application" BindingContext="{x:Reference EmailAddressValidator,PasswordValidator,AddressValidator}" IsEnabled="{Binding Path=EmailAddressValidator.IsValid && PasswordValidator.IsValid && AddressValidator.IsValid}"/>
现在EntryValidator行为有一个IsValid属性,它告诉我们控件是否处于有效状态。我想做的是根据所有条目的IsValid启用或禁用我的submit按钮。像这样的
<controls:ExtendedEntry x:Name="emailaddressEntry"
Grid.Row="0"
Grid.Column="1"
BorderColor="Black"
HasBorder="True"
IsEnabled="True"
Placeholder="Email Address"
Text="{Binding EmailAddress}">
<controls:ExtendedEntry.Behaviors>
<v:EntryValidatorBehavior x:Name="EmailAddressValidator"
IsCheckEmail="True"
IsCheckEmpty="True" />
</controls:ExtendedEntry.Behaviors>
</controls:ExtendedEntry>
<Button Command="{Binding OnCreateCommand}" Text="Submit Account Application" BindingContext="{x:Reference EmailAddressValidator,PasswordValidator,AddressValidator}" IsEnabled="{Binding Path=EmailAddressValidator.IsValid && PasswordValidator.IsValid && AddressValidator.IsValid}"/>
我不认为您可以在按钮中执行此操作
我不认为您可以在按钮中执行此操作
这很有帮助!这很有帮助!