Autor Beitrag
Määx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 123



BeitragVerfasst: Di 12.11.13 20:04 
Hallo zusammen,

ich habe mir eine Autovervollständigungs-TextBox geschireben die von einer normalen Textbx erbt. Im Moment muss man dem Control anfangs eine List<KeyedItem> übergeben wobei KeyedItem einfach eine Art KeyValuePair ist. Nun würde ich gerne meine TextBox generisch machen, so dass ich einfach eine Liste von beliebigen Objekten übergeben kann. Mit der toString-Methode würde ich dann die einzelnen Einträge berechnen...

Wenn ich dies jetzt so mache habe ich aber auch automatisch das Problem, dass die neue TextBox nicht mehr über den Designer auf ein anderes Control gezogen werden kann. Daher meine Frage: Kann man den generishcen Typ auch "im nachinein" übergeben? Oder dem designer sagen, dass er das irgendwie ignorieren soll?

Vielen Dank und viele Grüße
Määx
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 12.11.13 20:21 
Hallo Määx,

nein, ein generisches Control kann man nicht dem Designer hinzufügen.

Muß denn deine ganze Klasse generisch sein oder würde es reichen, wenn die eine List-Eigenschaft (bzw. der Konstruktor) generisch ist?
Alternativ könntest du zwei Versionen zur Verfügung stellen, die nicht-generische für den Designer und eine davon abgeleitete generische für die direkte Benutzung per Code.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 12.11.13 20:43 
In dem Project wo du das generische Control benutzen willst leite von diesem Control, dann mit einem konkreten Typ, und benutze dieses.

Was wäre den ein Beispiel hier für ein generischen Typen? Ich hab da Vorstellungsprobleme für einen sinnvollen Einsatz. Das Databinding Subsystem funktioniert mit IEnumerable, IList etc. und Reflection auf Properties. Wo hilft da ein generischer Typparameter?