You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改C# MAUI代码实现仅当两个Entry均非空时启用Save按钮?

解决C# MAUI中Save按钮仅在两个Entry都不为空时启用的问题

原代码的逻辑错误在于:它仅当两个Entry内容都为空时才禁用按钮,其他所有情况(包括仅一个Entry有内容)都会让按钮保持启用状态,这和需求完全相反。

要实现「仅当邮箱和电话Entry都不为空时才启用Save按钮」,可以按以下方式修改:

<Entry x:Name="email"
       Text="" />
<Entry x:Name="phone"
       Text="" />
<!-- 按钮默认设为禁用状态 -->
<Button Text="Save" IsEnabled="False">
    <Button.Triggers>
        <MultiTrigger TargetType="Button">
            <MultiTrigger.Conditions>
                <!-- 条件1:邮箱输入框内容长度不为0 -->
                <BindingCondition Binding="{Binding Source={x:Reference email},
                                            Path=Text.Length}"
                                  Value="0"
                                  Operator="NotEqual" />
                <!-- 条件2:电话输入框内容长度不为0 -->
                <BindingCondition Binding="{Binding Source={x:Reference phone},
                                            Path=Text.Length}"
                                  Value="0"
                                  Operator="NotEqual" />
            </MultiTrigger.Conditions>
            <!-- 两个条件同时满足时,启用按钮 -->
            <Setter Property="IsEnabled" Value="True" />
        </MultiTrigger>
    </Button.Triggers>
</Button>

逻辑说明

  1. 按钮初始状态设为IsEnabled="False",匹配两个输入框为空时的禁用需求。
  2. 借助MultiTrigger的两个BindingCondition,通过Operator="NotEqual"判断每个输入框的内容长度不等于0(即不为空)。
  3. 只有当两个条件同时成立时,才会触发Setter将按钮切换为启用状态。

内容的提问来源于stack exchange,提问作者musako

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:07