2011-08-25 72 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

感謝您的回答,對我的項目非常有幫助。 –

相關問題