2011-08-25 20 views
20

Estoy vinculando ViewModels a ContentControls y permitiendo que Caliburn se encargue de crear y vincular la vista. Sin embargo, me gustaría personalizar Caliburns ViewModel-> Ver la convención según el ContentControl al que estoy vinculado.Diferente vista según ContentControl (Caliburn.Micro)

Por ejemplo, un ContentControl regular, quiero que la vista normal se una (SomethingViewModel -> SomethingView). Pero para un cierto ContentControl, quiero que Caliburn busque una Vista nombrada, por ejemplo, SomethingViewSpecial. ¿Es eso posible?

Respuesta

32

Sí, es posible.

Utilice la propiedad adjunta cal:View.Context y luego nombre su vista para el contexto especificado como YourNamespace.Something.ContextView (elimine "ViewModel" del nombre de su modelo de vista, agregue un punto y el valor de la propiedad Contexto).

Con eso, incluso puede vincular varias vistas a un modelo de vista.

Ejemplo:

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

Se puede ver ejemplo here de trabajo (de CoProject aplicación de ejemplo, part 9).

+0

Gracias por la respuesta, muy útil en mi proyecto. –

Cuestiones relacionadas