我想在我的视图模型中添加错误处理,以便在执行命令并抛出异常时,可以优雅地处理错误并显示模态对话框。
我已经让这个工作,但我的方法是一个太啰嗦。错误被捕获在命令中,然后通过IObservable发布。行为订阅错误-创建适当的视图模型并传递给WindowManager。虽然它可以工作,但我更喜欢更具声明性的东西。
相反,我想装饰或拦截调用命令(绑定到一个按钮),并提供通用的错误处理。try-catch可能会调用视图模型上的方法或使用Rescue属性装饰的命令。
我知道这在Caliburn中是可能的,但它可以在Micro中完成吗?也许还有别的办法?
看看我在SO上问的这个问题,随后通过CM codeplex论坛得到了帮助。
我稍微修改了这个CM过滤器实现的RescueAttribute
,以允许错误处理例程作为协例程执行。
这与某些样品中可用的ShowModal
IResult
相结合,应该可以得到您想要的