【发布时间】:2019-02-13 09:44:24
【问题描述】:
使用caliburn micro,您可以通过以下方式执行方法:
<Buttton x:Name="ClickMe" />
并且在ViewModel中有这样的方法:
public void ClickMe()
{
//Method will be execute upon button click
}
是否可以将此绑定到ViewModel 中属性内的方法?像这样?:
<Buttton x:Name="Model.ClickMe" />
【问题讨论】:
-
这不是事件处理程序,它是action 的名称。动作和元素由触发器绑定。概念与数据绑定相同。无论您使用什么输入控件,触发该控件时都可以调用相同的命令。您还可以将多个视图控件绑定到同一命令
-
@PanagiotisKanavos 感谢您的贡献。不太确定你在这里想说什么,但在我看来这与 caliburn.micro 框架无关?如果我错了,请纠正我。
-
恰恰相反。该链接指向 Caliburn.Micro 文档,该文档解释了命名约定用于创建调用动作以响应事件的触发器、它们如何冒泡以及如何使用 Message.Attach 语法。您正在寻找的是绑定到另一个 ViewModel 对象的语法。
-
Caliburn.Micro 和 WPF 通常允许 composition。您可以拥有一个带有嵌套视图的视图,它可以很容易地绑定到一个 ViewModel 和嵌套的 ViewModel。子视图中的元素应在其自己的视图模型中触发操作
-
想象一下,例如,您有一个主/详细视图。那是一个根视图,带有一个主列表和一个详细视图。这些可以(并且应该)映射到包含 Master ViewModel 和 Detail ViewModel 的 ViewModel。在 Caliburn.Micro 中这样做几乎是微不足道的 - 只需为根视图中的每个子视图使用
ContentControl,Caliburn.Micro 就会根据它们的名称为 Master 和 Detail VM 选择正确的视图。一旦你这样做了,detail 中的 UI 元素将调用详细 VM 本身中的操作。
标签: c# wpf caliburn.micro