2011-08-25 75 views
20

我将ViewModel绑定到ContentControls并让Caliburn负责创建和绑定视图。但是,我想定制Caliburns ViewModel-> View约定,它基于我绑定的ContentControl。例如,一个普通的ContentControl,我希望常规视图绑定(SomethingViewModel - > SomethingView)。但是对于某个ContentControl,我希望Caliburn获取一个名为SomethingViewSpecial的View。那可能吗?取决于ContentControl的不同视图(Caliburn.Micro)

回答

32

是的,这是可能的。

使用cal:View.Context附加属性,然后为您的视图命名为YourNamespace.Something.ContextView(从您的视图模型名称中删除“ViewModel”,添加一个点和Context属性值)。

由此,您甚至可以将多个视图绑定到一个视图模型。

实施例:

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

可以看到工作示例here(从CoProject示例应用程序,part 9)。

+0

感谢您的回答,对我的项目非常有帮助。 –

相关问题