gpt4 book ai didi

wpf - CommandManager.InvalidateRequerySuggested() 不起作用

转载 作者:行者123 更新时间:2023-12-04 05:52:39 30 4
gpt4 key购买 nike

我有我的命令 CanExecute 方法仅在 wpf 应用程序启动时调用一次。我希望能够定期重新评估该方法。我发现了一些关于调用 的引用资料CommandManager.InvalidateRequerySuggested() 以编程方式或使用 调度员定时器 .两者都不适合我,每个应用程序生命周期仅调用一次 CanExecute。

有人知道修复吗?

-pom-

最佳答案

我已经阅读过有关该技术的信息,但它不是我使用过的或我认为常用的。通常我会使用来自 Prism 的 DelegateCommand 或来自 MVVM light 的 RelayCommand。这些实现具有 CanExecuteChanged 事件的 ICommand。然后,当您的 View 模型的状态发生变化时,您负责引发此事件,例如

public class MyViewModel
{
DelegateCommand _myCommand;

public MyViewModel()
{
_myCommand = new DelegateCommand(ExecuteMyCommand, CanExecuteMyCommand);
}

public ICommand MyCommand
{
get{ return _myCommand; }
}

private void ExecuteMyCommand(){ ... }
private bool CanExecuteMyCommand() { return true/false; }

// for example
public int SomeProperty
{
get{ ... }
set{
...;
if( ... ){
_myCommand.RaiseCanExecuteChanged();
}
}
}
}

不完全是你所追求的,但我希望它有所帮助。

关于wpf - CommandManager.InvalidateRequerySuggested() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9892587/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com