Frage : VB.NET - Databinding und kombiniertes UserControl

Hallo möchten alle,

I wissen, dass das Beste die databinding Funktionalität in meinem usercontrol.

The usercontrol selbst entwerfen möchten wird gebildet von einer area per informazioni und von einem Rasterfeld. Das Rasterfeld wird zum Benutzer und ihnen eine Liste der relevanten Felder von der Datenbank (angezeigt in diesem Fall Künstlernamen wie madonna) zu zeigen. Der Benutzer wählt im Allgemeinen etwas aus dem Rasterfeld der usercontrols heraus vor, ändert dieses dann die „Identifikation“ und Eigenschaften des usercontrol „anzeigen“. Das Identifikation-Eigentum der usercontrols ist unten:

,
Eigentum Identifikation () während Integer
Get
Rückholm_iID
Ende Get
gesetztes (ByVal Wert als ganze Zahl)
m_iID = value
„das Daten binding
RaiseEvent PropertyChanged erneuern (ich, neues System.ComponentModel.PropertyChangedEventArgs („Identifikation“))
Ende Set
Ende Property

(das Anzeigeneigentum ist genau das selbe, ausgenommen es das Eigentum .text der area per informazioni anstelle von einer privaten Variable ändert),

On die Form, habe ich ein usercontrol, ein Forms.Bindingsource und eine bevölkerte „Produkt“ Kategorie (wenn ein gültiges Künstler- und ArtistIDfeld bevölkert ist, 123 d.h., Madonna). Die Benutzersteuerung hat seine „Identifikation“ und „Anzeige“ fängt databound zur Datenquelle über das ArtistID auf und Produktkategorie der Künstlerfelder respectivly.

The wird dann als die des BindingSources Datenquelle eingestellt. An diesem Punkt werden die Identifikation-und Anzeigeneigenschaften des usercontrol aktualisiert, um die Produktkategorie zusammenzubringen, die zum Datenquelle (Identifikation = 123 und Anzeige = Madonna)

All von diesem ist fein binded, jedoch, wenn ich einen neuen Künstler vom UserControl vorwähle (456 d.h., Michael Jackson), der folgende Code in das usercontrol gelaufen wird:

Me.ID = oSelectedItem.ID“ (456) das
Me.Display = oSelectedItem.Description '(Michael Jackson)
(oSelectedItem ist einfach, was der Benutzer von einer Liste anderer Künstler vorgewählt hat),

At dieser Punkt, das „ArtistID“ Feld ändert in der Produktkategorie (abgebildet zum Identifikation-Feld im usercontrol und entspricht 456), gleichwohl das „Künstler“ Eigentum unberührt bleibt (abgebildet zum Anzeigenfeld im usercontrol, bleibt dieses, wie „Madonna“ und NICHT „Michael Jackson ").

At dieser Punkt, das usercontrol jetzt den neuen Künstlernamen anzeigen werden („Michael Jackson "), wenn wir das usercontrol lassen, wird der alte Künstlername vom Produktgegenstand wieder hergestellt und zurück gelegt in das usercontrol („Madonna“ wird wieder hergestellt),

What bin ich Handeln falsch? Sein fast Gleiches nur die erste Eigentumänderung tritt in Kraft und die zweite Linie, die die Anzeige aktualisiert, ist ignored.

I morgens using VB.NET 2005.

Antwort : VB.NET - Databinding und kombiniertes UserControl

Es gibt 2 Sachen, die Sie dann tun konnten.  Ein ist zu, anstatt, die Felder direkt zu redigieren, die Sie anstatt die Datenquelle des bindingsource zum vorgewählten Gegenstand ändern.  Wenn der vorgewählte Gegenstand nicht erreichbar ist, müssen Sie control.focus verwenden nachdem jede Feldänderung, wenn Sie Kennungsfelder im Hintergrundcode redigieren.

Mich bitte informieren, wenn das nicht frei ist.
Weitere Lösungen  
 
programming4us programming4us