微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当它由RelayCommand管理时,如何避免禁用按钮状态?

如何解决当它由RelayCommand管理时,如何避免禁用按钮状态?

我有一个一个按钮,其中“ enable”属性由RelayCommand“ InvertirseguridadCommand”处理。问题是,即使我将canExecute设置为固定的“ true”,该按钮也始终处于禁用状态。这是按钮:

<Button VerticalAlignment="Center" HorizontalAlignment="Center" 
                Grid.Row="1" Grid.RowSpan="2" 
                Command="{Binding Puesto.InvertirseguridadCommand,Source={StaticResource viewmodelLocator}}"
                CommandParameter="{Binding SalidaAsignada}">
            <StackPanel>
                <iconPacks:PackIconModern HorizontalAlignment="Center" Width="30" Height="30" Kind="Power" >
                    <iconPacks:PackIconModern.Style>
                        <Style targettype="iconPacks:PackIconModern">
                            <Setter Property="Foreground" Value="Green" />
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding IsReactorActivo}" Value="True">
                                    <Setter Property="Foreground" Value="Green" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </iconPacks:PackIconModern.Style>
                </iconPacks:PackIconModern>
                <Label HorizontalAlignment="Center">
                    <Label.Style>
                        <Style targettype="Label">
                            <Setter Property="Content" Value="Habilitar" />
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding IsReactorActivo}" Value="True">
                                    <Setter Property="Content" Value="Deshabilitar" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Label.Style>
                </Label>
            </StackPanel>
        </Button>

这是中继命令:

    public bool IsInvirtiendoSeguridad {
        get => isInvirtiendoSeguridad;               
        set {
            isInvirtiendoSeguridad = value;
            RaisePropertyChanged("IsInvirtiendoSeguridad");
        }
    }
    private RelayCommand<string> invertirseguridadCommand;
    public RelayCommand<string> InvertirseguridadCommand
    {
        get
        {
            IsInvirtiendoSeguridad = false;
            return invertirseguridadCommand
              ?? (invertirseguridadCommand = new RelayCommand<string>(
               async obj =>
                {
                    if (IsRefrescando)
                        return;
                    IsInvirtiendoSeguridad = true;
                    InvertirseguridadCommand.RaiseCanExecuteChanged();
                    await Invertirseguridad(Convert.ToInt32(obj));
                    IsInvirtiendoSeguridad = false;
                    InvertirseguridadCommand.RaiseCanExecuteChanged();
                },obj => !IsInvirtiendoSeguridad));
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?