Caliburn.Micro - 是否可能将事件绑定到System.Action或任何其他委托?

时间:2014-01-17 00:45:35

标签: c# wpf mvvm delegates caliburn.micro

上面的问题,简短的例子:

视图模型

public System.Action SomeAction;

private void Function1() {}
private void Function2() {}

//in code somewhere
SomeAction = new System.Action(Function1);
//in code elsewhere
SomeAction = new System.Action(Function2);

查看

xmlns:cm="..."
<Button ...
    cm:Message.Attach=[Event Click] = [Action SomeAction()] />

Caliburn.Micro有可能吗?我认为它适用于某种情况,但是像上面这样的代码抛出一个异常(MethodNotFound),这并不奇怪。

或许这可能是基于我缺乏知识的不良方法,这样的事情应该以其他方式完成?

1 个答案:

答案 0 :(得分:-1)

只需创建一个名为SomeAction()的公共方法,即可完成工作。根据我的经验,我没有真正使用旧学校delegates来调用function。您在此尝试实现的具体目的以及您想要使用旧学校delegate的原因是什么?

您何时要将委托设置为方法?基于选定的项目?商业逻辑?如果你真的需要在不同的场景上做一个不同的动作,那么我认为它会是design decision,如果你能告诉我你的情况,那么我可以提供更多细节。

相关问题