小编Sai*_*aez的帖子

Xamarin Forms ToolbarItem 不会从 XAML 更改 IsEnabled

尝试使用触发器从 XAML 打开/关闭它时,我遇到了ToolbarItemIsEnabled属性的问题。ToolbarItem不支持触发器,所以我要做的是创建一个Button支持触发器的(隐藏的),然后绑定Button.IsEnabledToolbarItem.IsEnabled;这是示例代码:

    <ContentPage.ToolbarItems>
        <ToolbarItem x:Name="tlbSave" Text="Save" Clicked="Handle_Clicked">
            <ToolbarItem.IsEnabled>
                <Binding Source="{x:Reference btnTest}" Path="IsEnabled" />
            </ToolbarItem.IsEnabled>
        </ToolbarItem>
    </ContentPage.ToolbarItems>

    <ContentPage.Content>

        <StackLayout Padding="10" VerticalOptions="CenterAndExpand">

            <Entry x:Name="txtTest" HorizontalOptions="FillAndExpand" />

            <Button x:Name="btnTest" Text="HIDDEN" IsEnabled="false" HorizontalOptions="FillAndExpand">
                <Button.Triggers>
                    <MultiTrigger TargetType="Button">
                        <MultiTrigger.Conditions>
                            <BindingCondition Binding="{Binding Source={x:Reference txtTest}, Path=Text.Length,
                                                           Converter={convert:IsPositiveIntegerConverter}}" Value="true" />
                        </MultiTrigger.Conditions>

                        <Setter Property="IsEnabled" Value="True" />
                    </MultiTrigger>
                </Button.Triggers>
            </Button>

        </StackLayout>

    </ContentPage.Content>
Run Code Online (Sandbox Code Playgroud)

如果您尝试这段代码,您将看到btnTesttxtTest.Text具有某些值时如何启用/禁用。但不影响tlbSave.IsEnabled财产。

但是,当我设置tlbSave.IsEnabledEventHandler时,这在代码中完美无缺btnText.PropertyChanged

btnTest.IsVisiblefalse …

toolbaritems xamarin.forms

8
推荐指数
1
解决办法
2242
查看次数

标签 统计

toolbaritems ×1

xamarin.forms ×1