首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止WPF CommandManager执行CanExecute

防止WPF CommandManager执行CanExecute
EN

Stack Overflow用户
提问于 2010-10-29 15:09:02
回答 1查看 778关注 0票数 3

是否有可能阻止WPF CommandManager执行其附加的CanExecute委托?

我有一个未处理的异常处理程序例程,它为用户显示一个错误窗口。我现在的情况是,异常作为CanExecute链的一部分被抛出。这将调用显示窗口的异常处理程序。此时,CommandManager启动并请求CanExecute,抛出另一个异常,调用处理程序,显示另一个窗口,请求CanExecute,抛出另一个异常.等等

我需要在某种程度上防止CanExecute的这种重新运行。我试图简单地忽略处理程序中的后续错误,但这意味着错误窗口中的异常信息为空。

EN

回答 1

Stack Overflow用户

发布于 2015-10-14 22:01:10

最好的资源是从具有ICommand接口CanExecuteChanged事件中查找。订阅该事件的操作将被通知禁用自身。

还不清楚您的结构是如何设置的,但我推测,在启动进程时,原始操作可能会触发此事件,然后当启动时再次触发该事件,以宣布其他已处理的命令可以运行。

启动命令操作的示例通知其他人在打开其命令之前检查状态:

代码语言:javascript
复制
private void DoTheCommand()
{
    _isProcessingCabExecute = false;       // Turn off all related for this 
                                           // command (is Execute).

    _opCommand.RaiseCanExecuteChanged();   // Inform all subscribed to check status 
                                           // and disable where possible.

    // The operation

    _isProcessingCabExecute = true;        // All done turn it back on
    _opCommand.RaiseCanExecuteChanged(); // Resume operations.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4053138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档