Caliburn中View和ViewModel之间的交互

时间:2012-11-22 08:11:31

标签: wpf mvvm caliburn.micro caliburn

我是Caliburn的新手。

我有几个关于MVVM和Caliburn的问题。

  1. 视图如何在ViewModel上显式调用方法? Caliburn首先调用ViewModel构造函数。如果是,那么实例将被包含在哪里?我的View中的代码此时创建了一个新实例(我需要显式调用ViewModel上的方法)。但是关于ViewModel应该已经实例化,这很愚蠢。

  2. 如何在UI线程上强制进行绑定更新?

1 个答案:

答案 0 :(得分:4)

Caliburn.Micro具有actions的概念,可以从视图中调用视图模型上的动词。您可以在很大程度上使用约定,例如,如果视图中Buttonx:Name="Save",那么{{1}时将调用视图模型上的Save方法单击。

您始终可以使用显式绑定来覆盖约定,并提供自己的约定,Caliburn.Micro还提供附加属性以将视图模型方法与视图中的事件相关联。

在强制更新UI方面,您的视图模型将实现Button,Caliburn.Micro提供此基础实现,包括INotifyPropertyChangedPropertyChangedBase(这会增加生命周期) )。

然后,您可以使用Caliburn.Micro提供的帮助程序方法来调用Screen事件。这称为PropertyChanged,它可以使用表达式lambda来指定要通知的属性,而不是使用魔术字符串。