fat-beavis
Legacy Member
Mede programmeurs,
Ik zit met volgend probleem.
Voor een applicatie die ik voor mezelf maak had ik graag het volgende gerealiseerd, ik zal misschien eerst kort even schetsen wat er moet gebeuren , en wat ik al geprobeerd heb en wat uit den boze is.
Ik heb een een combobox die gebonden is via de datasource aan mijn database.
Ik draai uit mijn database ( Entity Framework op SQL ) een linq query van een bepaalde set en bind die vervolgens aan mijn combobox.
Maar nu zou op de combobox bij het laden niet meteen het eerste item van de query mogen bevatten, maar een blank entry, zodat ALS je dan op de dropdown krijgt, de normale lijst krijgt.
Ik heb momenteel een manuele combobox gemaakt ( omdat ik geen lege entries wil maken in mijn database ) die overerft van combobox.
Als ik de methode OnDataSourceChanged(e as eventargs) overschrijf dat hij, na het binden van de datasource zijn selectedindex op -1 zet lukt dat wel, dan heb ik vervolgens de OnKeydown overschreven dat ik hem kan blank maken door middel van return of delete toets te drukken.
Maar hier wringt het schoentje, als ik de combobox leeg maak door middel van return of delete wordt de datasource niet geupdate.
Concreet voorbeeld
Ik vul mijn combobox op met namen van landen, bij de sub SelectionChangeCommitted haal ik dan data uit de database gevonden met de selectedvalue.
Als ik op delete druk moet hij terug alles ophalen, dit zou te doen zijn om op form niveau een sub te schrijven onKeyDown die dan eventueel gaat kijken wat de huidige waarde is van de combobox.
Echter ik zit met zo'n 40 comboboxen en ik vroeg me af als dit niet mogelijk was in mijn Klasse waarin ik overerf van combobox.
Het ideale zou zijn dat ik gewoon een empty string kan toevoegen op de 0 index, daarmee zou alles op gelost zijn.
Heb al rond gezocht op internet maar zij praten allemaal van datatables waarin je dan eventuele een blanco row kunt toevoegen.
een leeg item toevoegen op de Linq Query is geen optie want diezelfde queries gebruik ik om PDF's uit te rollen of rapporten aan te vullen op Crystal Reports, dus lege values toevoegen op de datasource is geen optie.
Ik heb ook via codeproject de "NullableCombobox" gevonden , maar daar blijft de blanco row er niet, bij het activeren van de dropdown is die weg ( die je dan wel terug kan oproepen met op del of return te duwen )
Dus een lang verhaal kort gemaakt.
Heeft iemand een idee hoe ik een blanco string kan toevoegen aan een combobox , na de datasource is geset, misschien kan ik via mijn combobox klasse die datasource manipuleren ?
Dat dit dan enkel gebeurt bij de comboboxen?
Iemand een idee?
Ik zit met volgend probleem.
Voor een applicatie die ik voor mezelf maak had ik graag het volgende gerealiseerd, ik zal misschien eerst kort even schetsen wat er moet gebeuren , en wat ik al geprobeerd heb en wat uit den boze is.
Ik heb een een combobox die gebonden is via de datasource aan mijn database.
Ik draai uit mijn database ( Entity Framework op SQL ) een linq query van een bepaalde set en bind die vervolgens aan mijn combobox.
Maar nu zou op de combobox bij het laden niet meteen het eerste item van de query mogen bevatten, maar een blank entry, zodat ALS je dan op de dropdown krijgt, de normale lijst krijgt.
Ik heb momenteel een manuele combobox gemaakt ( omdat ik geen lege entries wil maken in mijn database ) die overerft van combobox.
Als ik de methode OnDataSourceChanged(e as eventargs) overschrijf dat hij, na het binden van de datasource zijn selectedindex op -1 zet lukt dat wel, dan heb ik vervolgens de OnKeydown overschreven dat ik hem kan blank maken door middel van return of delete toets te drukken.
Maar hier wringt het schoentje, als ik de combobox leeg maak door middel van return of delete wordt de datasource niet geupdate.
Concreet voorbeeld
Ik vul mijn combobox op met namen van landen, bij de sub SelectionChangeCommitted haal ik dan data uit de database gevonden met de selectedvalue.
Als ik op delete druk moet hij terug alles ophalen, dit zou te doen zijn om op form niveau een sub te schrijven onKeyDown die dan eventueel gaat kijken wat de huidige waarde is van de combobox.
Echter ik zit met zo'n 40 comboboxen en ik vroeg me af als dit niet mogelijk was in mijn Klasse waarin ik overerf van combobox.
Het ideale zou zijn dat ik gewoon een empty string kan toevoegen op de 0 index, daarmee zou alles op gelost zijn.
Heb al rond gezocht op internet maar zij praten allemaal van datatables waarin je dan eventuele een blanco row kunt toevoegen.
een leeg item toevoegen op de Linq Query is geen optie want diezelfde queries gebruik ik om PDF's uit te rollen of rapporten aan te vullen op Crystal Reports, dus lege values toevoegen op de datasource is geen optie.
Ik heb ook via codeproject de "NullableCombobox" gevonden , maar daar blijft de blanco row er niet, bij het activeren van de dropdown is die weg ( die je dan wel terug kan oproepen met op del of return te duwen )
Dus een lang verhaal kort gemaakt.
Heeft iemand een idee hoe ik een blanco string kan toevoegen aan een combobox , na de datasource is geset, misschien kan ik via mijn combobox klasse die datasource manipuleren ?
Dat dit dan enkel gebeurt bij de comboboxen?
Iemand een idee?