gpt4 book ai didi

c# - RelayCommand CanExecute 行为

转载 作者:太空狗 更新时间:2023-10-29 19:58:29 27 4
gpt4 key购买 nike

我有以下命令:

<Button x:Name="bOpenConnection" Content="Start Production"
Grid.Row="0" Grid.Column="0"
Height="30" Width="120" Margin="10"
HorizontalAlignment="Left" VerticalAlignment="Top"
Command="{Binding Path=StartProductionCommand}"/>

StartProductionCommand = new RelayCommand(OpenConnection, CanStartProduction);

private bool CanStartProduction()
{
return LogContent != null && !_simulationObject.Connected;
}

CanStartProduction 仅在我调整 UI 大小时选中,而不是动态更新。知道为什么每次更改值时它都没有更新吗?

最佳答案

CommandManager 无法知道该命令依赖于 LogContent_simulationObject.Connected,因此它无法重新评估 CanExecute 当这些属性改变时自动执行。

您可以通过调用 CommandManager.InvalidateRequerySuggested 明确请求重新评估。请注意,它将为所有 命令重新评估CanExecute;如果只想刷新一个,则需要通过调用 StartProductionCommand.RaiseCanExecuteChanged 在命令本身上引发 CanExecuteChanged 事件。

关于c# - RelayCommand CanExecute 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15065885/

27 4 0