如何修改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>
逻辑说明
- 按钮初始状态设为
IsEnabled="False",匹配两个输入框为空时的禁用需求。 - 借助
MultiTrigger的两个BindingCondition,通过Operator="NotEqual"判断每个输入框的内容长度不等于0(即不为空)。 - 只有当两个条件同时成立时,才会触发
Setter将按钮切换为启用状态。
内容的提问来源于stack exchange,提问作者musako
相关产品推荐
相关产品推荐

