Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RelayCommand可以执行行为_C#_Wpf_Mvvm_Mvvm Light - Fatal编程技术网

C# RelayCommand可以执行行为

C# RelayCommand可以执行行为,c#,wpf,mvvm,mvvm-light,C#,Wpf,Mvvm,Mvvm Light,我有以下命令: <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=StartPr

我有以下命令:

<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}"/>
CanStartProduction
仅在我重新调整UI大小且不动态更新时才被选中。
知道为什么每次更改值时都不更新吗?

您可以在例如PropertyChanged Eventhandler中调用RaiseCanceChanged

命令状态不经常刷新

不久前我读了一篇关于它的好文章。我以后再发

另见


另请参见

命令管理器
无法知道命令是否依赖于
LogContent
\u simulationObject.Connected
,因此当这些属性更改时,它无法自动重新评估
CanExecute


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

您能给出一个示例或帖子链接如何使用它吗?我的意思是,你把这个叫做哪里?@batmaci,当你想重新评估你的命令的
执行时,你只要调用
CommandManager.InvalidateRequerySuggested
StartProductionCommand = new RelayCommand(OpenConnection, CanStartProduction);

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