取决于ContentControl(Caliburn.Micro)的不同视图

时间:2011-08-25 12:14:52

标签: caliburn.micro

我将ViewModels绑定到ContentControls并让Caliburn负责创建和绑定视图。但是,我想根据我绑定的ContentControl自定义Caliburns ViewModel-> View约定。

例如,一个常规的ContentControl,我希望常规View绑定(SomethingViewModel - > SomethingView)。但对于某个ContentControl,我希望Caliburn获取一个名为SomethingViewSpecial的View。这可能吗?

1 个答案:

答案 0 :(得分:36)

是的,有可能。

使用cal:View.Context附加属性,然后为YourNamespace.Something.ContextView之类的指定上下文命名视图(从视图模型名称中删除“ViewModel”,添加一个点,以及Context属性的值)。 / p>

通过这种方式,您甚至可以将多个视图绑定到一个视图模型。

示例:

<ContentControl x:Name="Toolbar" cal:View.Model="{Binding ActiveItem}" cal:View.Context="Toolbar" />

您可以看到工作示例here(来自CoProject示例应用,part 9)。