Nig*_*ker 7 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=StartProductionCommand}"/>
Run Code Online (Sandbox Code Playgroud)
StartProductionCommand = new RelayCommand(OpenConnection, CanStartProduction);
private bool CanStartProduction()
{
return LogContent != null && !_simulationObject.Connected;
}
Run Code Online (Sandbox Code Playgroud)
CanStartProduction仅在我重新调整UI大小并且未动态更新时才会进行检查.知道为什么每次更改值都没有更新吗?
Tho*_*que 16
在CommandManager没有知道该命令取决于方式LogContent和_simulationObject.Connected,因此它不能重新评估CanExecute时,这些属性更改自动.
您可以通过调用显式请求重新评估CommandManager.InvalidateRequerySuggested.请注意,它会重新评估CanExecute了所有的命令; 如果你只想刷新一个,你需要CanExecuteChanged通过调用在命令本身上引发事件StartProductionCommand.RaiseCanExecuteChanged.