2016-10-01 14 views
0

私は3〜4の入力コントロールを持つページを持っています。これらのエントリを検証する動作を作成しました。また、境界線、境界線の色、境界線の半径を持つようにエントリクラスを拡張しました。だから、XAMLは、このXamarinフォーム検証。

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

のようなsomethinのは、今EntryValidator行動が制御が有効な状態にであるかどうかを教えてくれるIsValidプロパティを持っています。私がしたいのは、すべてのエントリのIsValidに基づいて、送信ボタンを有効または無効にすることです。この

<Button Command="{Binding OnCreateCommand}" Text="Submit Account Application" BindingContext="{x:Reference EmailAddressValidator,PasswordValidator,AddressValidator}" IsEnabled="{Binding Path=EmailAddressValidator.IsValid && PasswordValidator.IsValid && AddressValidator.IsValid}"/> 

答えて

2

ような何かが私はあなたのButton<Button Command="{Binding OnCreateCommand}" Text="Submit Account Application" BindingContext="{x:Reference EmailAddressValidator,PasswordValidator,AddressValidator}"でこれを行うことができるとは思わないが、なぜあなたのためにそれを行い、あなたのPageModelのbooleanを作成しませんか?

あなたのPageModelのブール値にExtendedEntryIsValidのプロパティをバインドします。つまり、IsEmailValidです。 PageModelでIsFormValidというブール値をバインドするには、次のようにボタンをバインドします。<Button Command="{Binding OnCreateCommand}" Text="Submit Account Application" IsEnabled="{Binding IsFormValid}" />

また、PageModelにIPropertyChangedを実装するか、Fody.PropertyChangedを使用してより簡単に使用する必要があります。