2009-08-22 6 views
0

en utilisant le modèle MVP dans WinForms est basé sur le présentateur sachant quels contrôles accéder, tel que défini par l'IViewInterface. Par exemple, si vous avez 2 zones de texte et un bouton sur votre formulaire, vous définissez une IViewInterface avec deux propriétés pour la zone de texte et un événement de clic sur un bouton pour transférer l'appel à Presenter et le présentateur peut accéder à ces deux propriétés. Assez simple. Imaginez maintenant si votre interface utilisateur est construite au moment de l'exécution en fonction des tables de votre base de données. Disons que vous avez 500 tables dans votre base de données et que vous voulez concevoir des applications CRUD pour ces 500 tables. permet de dire quelque part dans votre base de données que vous définissez comment vous voulez mettre en page ces 500 tables dans votre interface utilisateur. vous avez un programme qui à l'exécution crée des contrôles d'interface utilisateur pour ces 500 tables. Comment appliquez-vous le modèle MVP dans de tels cas ??Le modèle MVP avec l'interface utilisateur créée dynamiquement

+0

Continuez à venir – codemnky

+0

Je ne donne pas un âne de rats à la réputation, les points gagnés, MVP, peu importe tant que je continue d'apprendre et ratisser dans la pâte – codemnky

+0

Internet est génial. vous n'avez pas besoin de marcher et d'avoir 40 ans d'expérience pour acquérir des connaissances essentielles. il y a une avenue pour gagner ceci dans un ordre court. – codemnky

Répondre

1

Des interfaces utilisateur entièrement dynamiques ont été essayées par de nombreux programmeurs sans beaucoup de succès. Je suis sûr que beaucoup de gens pourraient vous donner les prémisses de base, c'est-à-dire créer des tables, mais au-delà, rien n'a vraiment fonctionné, alors vous feriez mieux de faire votre propre truc.

Si vous pensez que vous avez une approche différente, vous devriez juste l'essayer et voir comment cela fonctionne.

0

Pour cela, le présentateur ne devrait pas du tout se soucier des contrôles.

La vue peut présenter ces données en tant que propriétés. Si ces 500 tables avec leurs 500 configurations d'interface utilisateur utilisent au moins un contrôle d'affichage standard comme GridView, vous pouvez exposer une propriété de "CurrentTableName" et une de "CurrentRow" pour la ligne active dans GridView. Le présentateur peut les prendre et les transmettre ou les transformer en objets DTO ou DM en une couche d'entreprise ou de service.

Cela peut être possible ou non dans ce cas.

+0

j'avais une notion similaire. Je pensais que mon IView aurait juste une méthode comme ceci Liste GetValuesFromTheFormForTheseControls (Liste ControlNames) Puisque nous avons une convention d'utilisation des champs de table comme noms de contrôle mon présentateur appellerait cette méthode chaque fois que je besoin de valeurs retriever pour un certain nombre de contrôles – codemnky

0

utilisant le modèle MVP dans WinForms est fondée sur le présentateur savoir sur lequel contrôle d'accès comme défini par le IViewInterface

est vrai, mais dans le cas de l'interface graphique dynamique vous n'avez pas besoin d'exposer ces contrôles individuellement comme les propriétés de l'interface. Vous pouvez définir un contrôle générique en tant que classe avec certaines propriétés communes et exposer une liste de ces contrôles en tant que propriété unique de votre interface d'affichage.

Ceci est seulement une façon de le faire - la conception dépend du scénario exact. Mais en général, je dirais que les interfaces graphiques dynamiques sont encore meilleures pour introduire MVP, pas le contraire. Pour tout ce que cela signifie, je reçois un -1 dès que je pose une question.

Questions connexes