2010-01-12 2 views
0

J'ai un viewmodel (appelons-le HouseVM) mais il contient un autre viewmodel à l'intérieur (KitchenVM). J'ai déjà créé un classeur de modèle personnalisé pour KitchenVM. Maintenant je crée le modelbinder HouseVM. Comment puis-je accéder à la liaison de modèle que j'ai déjà effectuée pour KitchenVM dans le classeur modèle HouseVM?Liaison de ViewModels avec d'autres ViewModelBinders

NOTE: Je l'ai vu this post

Répondre

0

Option 1

Vous pourriez avoir votre classeur de modèle pour la HouseVM hériter de votre classeur personnalisé pour le KitchenVM. Cela permettrait de lier les propriétés de Kitchen VM (ou les propriétés associées) à ce liant. Quelque chose comme:

public class HouseViewModelBinder : KitchenViewModelBinder 
{ 
    protected override void BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, System.ComponentModel.PropertyDescriptor propertyDescriptor) 
    { 
     if (propertyDescriptor.PropertyType == typeof(KitchenVM)) 
     { 
      base.BindProperty(controllerContext, bindingContext, propertyDescriptor); 
     } 
     // bind the other properties here 
    } 
} 

Option # 2

This post by Jimmy Bogard peut être une autre bonne façon de mettre en œuvre vos différents classeurs de modèles personnalisés, ce qui permet chaque type de se lier à son modèle approprié.