使用Caliburn.Micro将属性和方法绑定到单个元素

时间:2011-06-02 23:28:27

标签: silverlight-4.0 mvvm caliburn.micro

所以,我对Silverlight开发相当新,我正在试图找出并使用Caliburn.Micro框架。我理解CM使用约定来匹配视图模型中的属性和视图中的元素,并且默认约定可以在ConventionManager Class of CM中找到。

我的情况是这样的:我有一个名为“Libraries”的TreeView(使用Silverlight Toolkit),我已经成功地将我的视图模型中的ObservableCollection类型的属性绑定到TreeView。该物业也被命名为“图书馆”,因此CM完成了其余的工作。

现在,我想在视图模型中创建一个属性,该属性将使用TreeView的SelectedItem进行设置。我应该如何使用CM的约定来做到这一点?我该怎么命名这个房产?

最后,我希望在触发TreeView的SelectedItemChanged事件时调用视图模型中的方法。我应该如何命名这个方法,以便通过惯例来完成?

任何人都可以帮忙吗?

艾森伯格......艾森伯格......(在我最好的本·斯坦因模仿中)

谢谢, 大卫

编辑:我还应该注意到我已修改CM程序集以将以下行添加到ConventionsManager的构造函数中,因为它之前已从Silver DLL版本的CM dll中排除:

AddElementConvention(TreeView.ItemsSourceProperty, "SelectedItem", "SelectedItemChanged");

1 个答案:

答案 0 :(得分:1)

您应该能够创建名为SelectedLibrary或ActiveLibrary的公共属性,CM将完成剩下的工作。如果这不起作用,你可以总是回到Action:

cal:Message.Attach="[Event SelectedItemChanged] = [Action SelectedLibrary($eventArgs)]"

编辑:你需要一个属性设置器和一个触发方法吗?