2010-11-29 21 views
3

Possible en double:
Is it Possible to Make a Generic Control in .Net 3.5?Comment créer un UserControl <T> en C#?

Comment puis-je créer un UserControl<T> en C# ou en Winforms Webforms?

public partial class MyView<T> : UserControl 
{ 
     public MyView() 
     { 
      InitializeComponent(); 
     } 
} 

Lorsque je tente, je reçois le message d'erreur suivant:

The name 'InitializeComponent' does not exist in the current context 

est-il pas possible de faire un UserControl générique dans .NET 3.5?

+1

Est-ce un contrôle utilisateur WinForms? Le concepteur de formulaire ne peut pas gérer les formulaires génériques ou les contrôles utilisateur; il vous donnera une erreur lorsque vous essayez d'ouvrir 'MyView'. –

+0

c'est un UserControl WPF! désolé oublié à ce sujet. – Elisabeth

+0

Vous venez d'ajouter toutes les balises à l'exception de WPF? Qu'est-ce que asp.net et winforms a à voir avec ça? Que pensais-tu George? – Arcturus

Répondre

3

La réponse courte est non!

Le Xaml ne peut pas le gérer dans .NET 3.5. Vous pouvez toutefois déduire des classes génériques, donc

public partial class MyView : MyView<T> 

Mais vous devez le spécifier dans le XAML aussi bien avec la TypeArgument

<my:BusinessObject x:TypeArguments="x:String"/> 
3

Il s'agit d'une division partielle de classe entre plusieurs fichiers. Ouvrez le fichier MyView.Designer.cs et rendez-le générique là aussi.