繁体   English   中英

Maui Button.IsEnabled 未禁用

[英]Maui Button.IsEnabled not disabled

我在 MAUI 上有一个带有 MVVM 模板的应用程序,其中输入了电话号码的给定字段,如果它是空的,那么当您单击转换按钮时,呼叫按钮应该不可用。 但是通常的绑定 IsEnabled = {Binding...} 不想工作。 在代码中,当您将 position 设置为 true/false 时,它会永远保持不变。 请帮忙解决这个问题

主页.xaml

<ScrollView>
    <VerticalStackLayout
        Spacing="15"
        Padding="20">

        <Label Text="Enter the phone number"
               FontSize="20"/>
        <Entry x:Name="PhoneNumber"
               Text="{Binding PhoneNumber}"/>
        <Button x:Name="ConvertButton"
                Text="{Binding ConvertButton}"
                Command="{Binding ConvertCommand}"
                />
        <Button x:Name="CallButton"
                Text="{Binding CallButton}"
                Command="{Binding CallCommand}"
                IsEnabled="{Binding IsReady}"/>

    </VerticalStackLayout>
</ScrollView>

主视图模型.cs

    public string convertNumber;
    [ObservableProperty]
    public string phoneNumber = "+7-888-777-77-77";
    [ObservableProperty]
    public string convertButton = "Convert";
    [ObservableProperty]
    public string callButton = "Call";
    [ObservableProperty]
    public bool isReady;


    [RelayCommand]
     void Convert()
     {
        convertNumber = Task2.ToNumber(phoneNumber);
        if (!string.IsNullOrEmpty(convertButton))
        {
            isReady = true;
            callButton = $"Call {convertNumber}"; 
        }
        else
        {
            isReady = true;
            callButton = "Call: ";
        }
        
     }

带有未激活按钮的屏幕 带有活动按钮的呼叫屏幕 呼叫

您可以更改 C# 中IsEnable属性的值。

void Convert()
{
    convertNumber = Task2.ToNumber(phoneNumber);
    if (!string.IsNullOrEmpty(convertButton))
    {
        callButton.IsEnable = false;
        callButton = $"Call {convertNumber}"; 
    }
    else
    {
        callButton.IsEnable = true;
        callButton = "Call: ";
    }     
}

如果使用 Bind,只有当 bind 属性的引用发生变化时,UI 才会发生变化。(这个说法可能是错误的)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM