Xamarin形式的多数据触发器

时间:2018-11-26 14:30:58

标签: xamarin xamarin.forms xamarin.ios

仅当两个文本字段不为空时,我才尝试允许单击我的按钮。但是,我得到了

的编译错误
  

未找到类型的多数据触发器

下面是我的语法,应该如何更改它以使其按需执行?

    <?xml version="1.0" encoding="utf-8" ?>  
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"  
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" >
<ContentPage.Content>  
    <StackLayout Orientation="Vertical" Padding="30" Spacing="40">  
        <BoxView HeightRequest="10"/>  
        <Frame BackgroundColor="#BF043055" HasShadow="False">  
            <StackLayout Orientation="Vertical" Spacing="10">  
                <Entry x:Name="Email" Text="{Binding Email}" Placeholder="Email"   
                       PlaceholderColor="Red" HeightRequest="50"   
                       Keyboard="Email" TextColor="Black" />
                <Entry x:Name="Password" Text="{Binding Password}" Placeholder="Password"   
                       PlaceholderColor="Red" HeightRequest="50"   
                       IsPassword="True" TextColor="Black" />  
                </StackLayout>  
        </Frame>  
        <Button x:Name="loginbutton" Command="{Binding SubmitCommand}" Text="Login" TextColor="White"  
                FontAttributes="Bold" FontSize="Large" HorizontalOptions="FillAndExpand"  
                BackgroundColor="#088da5" > 
                <Button.Style>
                  <Style TargetType="{x:Type Button}">
                      <Style.Triggers>
                          <MultiDataTrigger>
                              <MultiDataTrigger.Conditions>
                                 <Condition Binding="{Binding ElementName=Email, Path=Text.Length, Mode=OneWay}" Value="0"/>
                                 <Condition Binding="{Binding ElementName=Password, Path=Text.Length, Mode=OneWay}" Value="0"/>
                              </MultiDataTrigger.Conditions>
                              <Setter Property="IsEnabled" Value="False"/>
                         </MultiDataTrigger>
                     </Style.Triggers>
                  </Style>
                </Button.Style>
        </Button>
    </StackLayout>  
</ContentPage.Content>  
</ContentPage>  

编辑
我将语法修改为以下内容,但出现编译错误:

  

找不到'ElementName'的属性,可绑定属性或事件,或值和属性之间的类型不匹配。

            <Button x:Name="loginbutton" Command="{Binding SubmitCommand}" Text="Login" TextColor="White"  
                FontAttributes="Bold" FontSize="Large" HorizontalOptions="FillAndExpand"  
                BackgroundColor="#088da5" > 
                <Button.Style>
                  <Style TargetType="{x:Type Button}">
                      <Style.Triggers>
                          <MultiTrigger TargetType="{x:Type Button}">
                              <MultiDataTrigger.Conditions>
                                 <Condition Binding="{Binding ElementName=Email, Path=Text.Length, Mode=OneWay}" Value="0"/>
                                 <Condition Binding="{Binding ElementName=Password, Path=Text.Length, Mode=OneWay}" Value="0"/>
                              </MultiDataTrigger.Conditions>
                              <Setter Property="IsEnabled" Value="False"/>
                         </MultiTrigger>
                     </Style.Triggers>
                  </Style>
                </Button.Style>
        </Button>

1 个答案:

答案 0 :(得分:0)

B.A.Mutexx.Lock()特定于WPF。 Xamarin使用def slot(time): if time-datetime.time(6,0,0)<0: return 'Early morning' elif time - datetime.time(12,0,0)<0: return 'Morning' elif time - datetime.time(18,0,0)<0: return 'Afternoon' else: return 'Night' ,本质上是做同样的事情。浏览this blog post,了解如何在Xamarin表单中实现触发器。