首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为Caliburn.Micro操作消息指定自定义保护属性

为Caliburn.Micro操作消息指定自定义保护属性
EN

Stack Overflow用户
提问于 2014-04-11 18:08:15
回答 1查看 469关注 0票数 1

使用Caliburn.Micro,我可以有一个IsEnabled属性来定义按钮的防护状态:

代码语言:javascript
运行
复制
<Button cal:Message.Attach="DoSomething" Content="Do it"/>

在ViewModel中

代码语言:javascript
运行
复制
public bool CanDoSomething { get {...} }

public void DoSomething() {... }

我的问题是在功能区菜单中有很多按钮和相应的操作。几乎所有按钮都有相同的保护逻辑,例如“如果应用程序不忙于一些长时间运行的操作,则启用”。我的虚拟机往往会被许多具有相同内容的"CanXYZ“属性弄得乱七八糟。当然,所有的防护属性都可以委托给一个包含实际逻辑的单一属性,但是有没有办法避免所有这些单一的防护属性呢?就像这样

代码语言:javascript
运行
复制
<Button cal:Message.Attach="DoSomething" cal:Message.Attach.Guard="IsAppIdle" Content="Do it"/>

先谢谢你...

EN

回答 1

Stack Overflow用户

发布于 2014-04-11 20:57:38

这样做并不是不可能,但是DoSomething被连接到ViewModel中,Caliburn Micro的工作方式是在数据上下文中查找属性。我可以看到这以一个静态类结束,它可以在调用RaiseCanExecute时调用这个静态类。

Attach也是一个附加属性。您必须将该属性更改为包含Guard的类,以便最终编写我建议的内容或扩展caliburn micro的Message类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23009607

复制
相关文章

相似问题

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