Controls med DataSources i VS7 IDEen
Når man laver en webcontrol, f.eks inherited fra en BaseDataList, så får du også en "DataSource" property i din nye klasse... Denne property er synlig i VS7 IDE'en under properties vinduet, når din class control er valgt naturligvis... Dette gør det nice and easy at vælge en eksisterende Data Source, bare trykke på drop down listen og vælge den... :)Men... Hvis man nu ikke er intereseret i at nedarve sin klasse fra f.eks BaseDataList, men blot vil nedarve den fra f.eks Control eller WebControl, så er det pludselig en anden sag hvis man vil have en DataSource property...
Det er ingen problem at lave en property der accepterer et object, og kalde dette for DataSource, og heller ikke at gøre den synlig i property vinduet... Men, hvis man nu vil have en drop down menu som den man ser når man nedarver den fra BaseDataList, som viser alle eksisterende DataSources, og også skriver disse korrekt ind på tag'en for webcontrol'en, så er det pludselig ikke så simpelt (well, det kan det godt være men jeg ved bare ikke hvordan endnu :) )...
Jeg ved at jeg manuelt kan referere til en datasource i tag'en på f.eks følgende måde :
<mytag:controlname DataSource="<%# DataSet1 %>"/>
Hvor DataSet1 er min DataSource...
Jeg har heller ikke noget problem i blot at få en dropdown menu hvor man kan vælge alle datasources, det gør jeg med følgende attribute på property'en for DataSourcen..
[ TypeConverter(typeof
(System.Web.UI.Design.DataSourceConverter)) ]
Problemet er bare her, at med denne TypeConverter, bliver værdien i tag'en (hvis jeg vælger DataSet1...
<mytag:controlname DataSource="DataSet1"/>
Eller sagt på en anden måde, en streng, og ikke
en databinding til dataset'et, hvilket jeg ikke
lige kan bruge til så meget som jeg gerne ville :)
Så, spørgsmålet er...
Er der nogen her der ved om det er en UITypeEditor, en TypeConverter, i så fald, om de er pre-skrevet af MS i framework'et som en hel del andre TypeConverters allerede er ???
Eller, bliver jeg nød til at skrive en TypeConverter selv, eller er der muligvis en her der allerede har skrevet en ???
Mvh,
Svøllen