Question

Quelle est la meilleure pratique pour charger un contrôle utilisateur dans une fenêtre avec MVVM Light? Où créer l'instance de contrôle de l'utilisateur, dans le ViewModel de fenêtre ou directement dans la fenêtre?

Était-ce utile?

La solution

Votre VM ne doit contenir aucun code spécifique de l'interface utilisateur comme les contrôles si vous êtes inquiet au sujet des meilleures pratiques. Par exemple, si vous avez une propriété dans la machine virtuelle qui contrôle la visibilité d'un contrôle dans votre point de vue, que la propriété doit être de type bool et non visibilité. La vue utilisera la propriété bool pour masquer ou afficher le contrôle.

Vous avez une vue (comme une fenêtre) qui databinds contre une machine virtuelle. Certains changements de propriété dans la machine virtuelle qui entraînera un code dans la fenêtre pour créer et afficher un contrôle utilisateur.

Autres conseils

Je viens de lire cet excellent poste sur la création d'une interface avec onglets MVVM (Light). Il ne parle pas de contrôles utilisateur, mais l'objectif est assez proche. Il serait facile de modifier les contrôles utilisateur de soutien.

L'approche consiste à lier le contrôle de tabulation pour une collection observable des espaces de travail (ViewModels). Quand un nouvel onglet (ou espace de travail) est ajouté, il est instancié dans le ViewModel, ajouté à la collection, databound à la vue et rendu comme un nouvel onglet à l'aide de DataTemplates.

Je serai heureux si vous pouvez montrer un exemple de faire en utilisant la lumière MVVM. J'ai aussi le problème avec la fenêtre principale veut « fenêtre enfant » (contrôles utilisateur) pour afficher / cacher le bouton clic de la fenêtre principale .. alors que je devrais les créer tous dans la même colonne de la grille par exemple de lieu let et les hommes afficher / cacher par propriété de liaison?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top