我正在使用MVVM-Light的RelayCommand
private ICommand myRevertCmd;
public ICommand Revert
{
get
{
if (myRevertCmd == null)
{
myRevertCmd = new RelayCommand(RevertExecute, CanRevertExecute);
}
return myRevertCmd;
}
}
private void RevertExecute()
{
searchType = SearchType.Revert;
SearchStart();
}
private bool CanRevertExecute()
{
return isRevertEnabled;
}
我有一些代码更改了isRevertEnabled的值,但相关按钮没有改变。经过一番搜索,我发现可以使用trigger强制重新评估按钮状态。
// force the GUI to re-evaluate the state of the buttons
CommandManager.InvalidateRequerySuggested();
但是这并不起作用。有人有什么建议吗?
RelayCommand
的一种实现在额外的命名空间GalaSoft.MvvmLight.CommandWpf
中,专门解决了这个问题! - heltonbiker