如何解决当它由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 举报,一经查实,本站将立刻删除。