Vraag : VB.NET - Databinding en Combo UserControl

Hallo willen allen,

I weten de beste behoefte om de databinding functionaliteit in mijn usercontrol usercontrol.

The te ontwerpen zelf van een textbox en een net wordt gemaakt. Het net zal aan de gebruiker worden getoond en zal tonen hen een lijst van relevante gebieden van het gegevensbestand (in dit geval de namen van de Kunstenaar zoals madonna). De gebruiker selecteert fundamenteel iets uit het net van usercontrol, zal dit dan de eigenschappen van „identiteitskaart“ en van de „Vertoning“ van usercontrol veranderen. Het bezit van identiteitskaart van usercontrol is hieronder:

,/> identiteitskaart van het Bezit
Get
m_iID
Get
Vastgestelde (waarde ByVal als Geheel)
m_iID = value
„verfrist de gegevens binding
RaiseEvent PropertyChanged (me, Nieuwe System.ComponentModel.PropertyChangedEventArgs („identiteitskaart“))
beëindigt Set
Eind Property

(het bezit van de Vertoning is precies het zelfde maar verandert het het .textbezit van textbox in plaats van een privé variabele)

On de vorm, heb ik een usercontrol, een Forms.Bindingsource en een bevolkte klasse van het „Product“ (met een geldig bevolkte Kunstenaar en een gebied ArtistID d.w.z. 123, Madonna). De gebruikerscontrole heeft zijn „identiteitskaart“ en de gebieden van de „Vertoning“ databound aan Datasource via de klasse van het de gebiedenrespectivly.

The van ArtistID en van de Kunstenaar is dan plaatsen als BindingSource datasource. Op dit punt worden de eigenschappen van identiteitskaart en van de Vertoning van usercontrol bijgewerkt om de productklasse aan te passen die binded aan datasource (identiteitskaart = 123 en Vertoning = Madonna)

Elk van dit fijn is, nochtans wanneer ik een nieuwe kunstenaar van UserControl (d.w.z. 456, Michael Jackson) selecteer, de volgende code wordt gelopen in usercontrol:

Me.ID = oSelectedItem.ID“ (456)
Me.Display = oSelectedItem.Description '(Michael Jackson)
(oSelectedItem is eenvoudig wat de gebruiker uit een lijst van andere die kunstenaars) heeft geselecteerd

op dit punt, het gebied „ArtistID“ veranderen=zal= in de klasse van het Product (in kaart wordt gebracht aan zal het identiteitskaart- gebied in usercontrol en 456) evenaren, nochtans zal het „bezit van de Kunstenaar“ onaangetast blijven (in kaart gebracht aan het vertoningsgebied in usercontrol, zal dit als „Madonna“ en NIET „Michael Jackson“ blijven).

op dit punt, zal usercontrol nu de nieuwe kunstenaarsnaam („Michael Jackson“) tonen, als wij usercontrol verlaten de oude kunstenaarsnaam wordt hersteld van het productvoorwerp en terug geplaatst in usercontrol („Madonna“ hersteld)

What I ben wordt doen verkeerd? Zijn bijna van kracht als slechts eerste bezit wordt de verandering en de tweede lijn die de vertoning bijwerkt is ignored.

I am gebruikend VB.NET 2005.

Antwoord : VB.NET - Databinding en Combo UserControl

Er zijn 2 dingen u kon dan doen.  Men is aan in plaats van direct het uitgeven van de gebieden u in plaats daarvan datasource van bindingsource in het geselecteerde voorwerp verandert.  Als het geselecteerde voorwerp niet beschikbaar is moet u control.focus na elke gebiedsverandering gebruiken wanneer u verbindende gebieden in achtergrondcode uitgeeft.

Gelieve te laten me weten of is dat niet duidelijk.
Andere oplossingen  
 
programming4us programming4us