上面的问题,简短的例子:
视图模型
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),这并不奇怪。
或许这可能是基于我缺乏知识的不良方法,这样的事情应该以其他方式完成?
答案 0 :(得分:-1)
只需创建一个名为SomeAction()
的公共方法,即可完成工作。根据我的经验,我没有真正使用旧学校delegates
来调用function
。您在此尝试实现的具体目的以及您想要使用旧学校delegate
的原因是什么?
您何时要将委托设置为方法?基于选定的项目?商业逻辑?如果你真的需要在不同的场景上做一个不同的动作,那么我认为它会是design decision
,如果你能告诉我你的情况,那么我可以提供更多细节。