Wie kann ich die Eigenschaftsgrid-Elementwerte aktualisieren, wenn ein anderes Element in winform c # geändert wurde?

8

Ich habe ein Grundstücksraster mit 2 Gegenständen. Land & amp; Städte. Ich habe 1 Tabelle in der Datenbank: CountryCityTable, die LocationId, Titel, ParentId speichern. Für Länder parentId = 0 und für Städte ist countid.

In meinem propertygrid verwende ich diese und zeige sie in zwei Combobox-Elementen an. Bitte sehen Sie meinen Code:

%Vor%

Und

%Vor%

Und

%Vor%

Nun möchte ich, wenn der Benutzer den Titel des Landes in propertygrid geändert hat, die Liste der Städte aktualisiert (zeige nur die Städte an, deren parentid diese = countryid).

Außerdem kann ich in meiner Klasse die Nummer 20 in meinem Code ( Db.LoadLocations (1,20); ) in die ausgewählte Länder-ID ändern?

Danke.

    
Ali Ahmadi 18.11.2012, 12:25
quelle

1 Antwort

3

Sie müssen etwas ähnlich wie INotifyPropertyChanged

implementieren

Microsoft INotifyPropertyChange-Dokumentation

Mit anderen Worten, Sie müssen ein Ereignis ausgelöst haben, wenn Sie eine Eigenschaft erhalten. Soweit ich mich erinnere, überprüft das Eigenschaftenraster automatisch diesen Typ von Ereignis / Schnittstelle und aktualisiert den korrekten Eigenschaftsknoten, wenn das Ereignis ausgelöst wird.

Der wichtige Teil ist:

%Vor%

und

%Vor%

Wenn Sie etwas tun möchten, das nicht vom PropertyGrid abgedeckt wird, müssen Sie lediglich Ihre eigene Methode im PropertyChanged -Ereignis registrieren und tun, was Sie wollen.

    
LightStriker 18.11.2012, 12:42
quelle

Tags und Links