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

Kri*_*all 23 caliburn.micro

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

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

giu*_*ius 36

对的,这是可能的.

使用cal:View.Context附加属性,然后命名您的视图类的指定范围内YourNamespace.Something.ContextView(从您的视图模型名称中删除"视图模型",加一个点,Context属性的值).

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

例:

<ContentControl x:Name="Toolbar" cal:View.Model="{Binding ActiveItem}" cal:View.Context="Toolbar" />
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看工作示例(来自CoProject示例应用程序,第9部分).