2010-06-07 5 views
18

Je travaille sur la création d'un contrôle utilisateur date/heure dans WPF en utilisant C# 2008. Mon premier contrôle utilisateur. J'utilise aussi le livre de Matthew MacDonald, "Pro WPF in C# 2008". Dans ce livre, il recommande fortement de créer un contrôle utilisateur en utilisant le modèle de projet WPF Custom Control Library; donc j'ai suivi sa suggestion. J'ai fini d'écrire le code qui irait dans ce que je considère comme le fichier code-behind. Maintenant, je suis prêt à écrire le XAML.Différence entre le contrôle utilisateur et la bibliothèque de contrôle personnalisé

Le seul problème est que je viens de découvrir qu'il n'y a pas de fichier .xaml correspondant? Donc, je ne comprends pas pourquoi l'utilisation d'un projet WPF Custom Control Library est meilleure, ou préférée, lors de l'écriture d'un contrôle utilisateur?

Répondre

28

Un contrôle utilisateur et un contrôle personnalisé résolvent deux problèmes distincts. Les contrôles utilisateur sont destinés à composer plusieurs contrôles WPF ensemble, afin de rendre un ensemble de fonctionnalités construit à partir d'autres contrôles. Ceci est souvent utilisé pour composer une partie d'une fenêtre ou d'un écran afin d'organiser votre développement en vous permettant de regrouper plusieurs éléments de fonctionnalité en un seul «contrôle». Par exemple, si vous souhaitez contrôler l'édition d'un utilisateur qui a fourni des zones de texte pour le prénom et le nom, l'ancienneté, etc., un seul UserControl pourrait être déposé sur une fenêtre et lié à une instance utilisateur pour le modifier. (Dans ce cas, vous utilisez des contrôles standard, tels que TextBox, pour "composer" un contrôle dans un but plus complexe.)

Un CustomControl est censé être un nouveau contrôle unique. Ce serait généralement un remplacement pour un contrôle intégré (qui ne pouvait pas être refait par l'intermédiaire de la modélisation). J'ai trouvé que le besoin de CustomControls est plutôt rare dans WPF, puisque les options de template de WPF et les propriétés attachées vous permettent de faire presque n'importe quoi avec les contrôles standard, une fois que vous les avez appris entièrement.

+0

Merci pour l'explication. Il me semble alors que ce que je dois faire est d'utiliser le projet de contrôle utilisateur et non le projet de bibliothèque de contrôle personnalisé. – Rod

+3

Cela ne répond pas à la question. La question était de savoir quelle est la différence entre un contrôle personnalisé et un contrôle utilisateur ** Bibliothèque **. Je peux prendre cette réponse et en déduire celle que je devrais utiliser, mais elle ne me dit toujours pas comment les deux modèles de projet sont différents. – jcmcbeth

1

Je voudrais aussi ajouter, si vous avez l'intention d'hériter de votre contrôle, alors en utilisant un usercontrol va compliquer les choses. Par exemple, si vous créez un objet usercontrol avec une disposition définie dans Xaml, l'infrastructure WPF ne vous permettra pas d'hériter de ce contrôle et d'utiliser Xaml pour définir la disposition de la sous-classe. Dans dotnet 3.5, le contrôle Xaml ne peut pas hériter d'un autre contrôle Xaml

+0

Vous avez raison. C'est pourquoi on doit privilégier la composition par héritage lorsqu'on travaille avec WPF. –

Questions connexes