2011-08-25 6 views
20

私はViewModelsをContentControlsにバインドして、Caliburnにビューの作成とバインドを任せています。しかし、私はバインドするContentControlに基づいて、Caliburns ViewModel-> Viewの規約をカスタマイズしたいと思います。ContentControl(Caliburn.Micro)に応じて別のビュー

たとえば、通常のContentControlでは、通常のViewをバインドする必要があります(SomethingViewModel - > SomethingView)。しかし、特定のContentControlの場合、Caliburnに、たとえばSomethingViewSpecialという名前のビューを取得させたいと思います。それは可能ですか?

答えて

32

はい、可能です。

cal:View.Context添付プロパティを使用して、YourNamespace.Something.ContextView(ビューモデル名から「ViewModel」を削除し、ドットを追加し、Contextプロパティの値を指定)などの指定したコンテキストに名前を付けます。

これによって、複数のビューを1つのビューモデルにバインドすることもできます。

例:

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

あなたは作業例hereCoProjectサンプルアプリケーション、part 9から)を見ることができます。

+0

答えてくれてありがとう、私のプロジェクトでとても役に立ちました。 –

関連する問題