c# – RelayCommand CanExecute行为
发布时间:2020-12-15 08:08:15 所属栏目:百科 来源:网络整理
导读:我有以下命令: 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}"/
我有以下命令:
<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; } 仅当我重新调整UI大小并且未动态更新时才会检查CanStartProduction. 解决方法
CommandManager无法知道该命令依赖于LogContent和_simulationObject.Connected,因此当这些属性发生更改时,它无法自动重新评估CanExecute.
您可以通过调用CommandManager.InvalidateRequerySuggested显式请求重新评估.请注意,它将为所有命令重新评估CanExecute;如果只想刷新一个,则需要通过调用StartProductionCommand.RaiseCanExecuteChanged在命令本身上引发CanExecuteChanged事件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |