Wenn Sie die DataSource-Eigenschaft eines Objekts festlegen, wann verwenden Sie einen Typ und eine Instanz?

8

Frage

Was ist der Unterschied zwischen der Einstellung von [...].DataSource auf eine Instanz eines Objekts im Vergleich zum Typ einer Klasse? Ich habe beide Methoden in unserer Codebasis verwendet, und ich versuche zu verstehen, warum es in diesen Fällen so oder so ist.

Beispiel

Wie funktioniert

? %Vor%

unterscheidet sich von

%Vor%

Weitere Abfrage

Wenn im ersten Fall DataSource als Typ einer Klasse festgelegt wird, was passiert dann, wenn diese Klasse eine Basisklasse ist? Arbeitet die Datenbindung an Eigenschaften, die nur in Klassen vorhanden sind, die von der Basisklasse abstammen? Oder arbeitet die Datenbindung nur an den Klassenmitgliedern des Typs der Klasse, für die ich DataSource auf gesetzt habe?

Ich habe Schwierigkeiten, meine Google Suchanfragen zu formulieren, um mir eine Antwort auf diese Frage zu geben. Und das ist entweder, weil dieses Zeug kompliziert ist und ich es nicht richtig formuliere, oder ich verstehe einige der Grundlagen der Datenbindung in C # nicht ganz. Könnte ich helfen, hier in die richtige Richtung zu zeigen? Danke!

    
Jake Smith 18.08.2014, 17:25
quelle

2 Antworten

3

Wenn Sie % co_de festlegen % Eigenschaft für einen Typ, an den das Steuerelement mit Elementen dieses Typs an eine leere BindingSource.DataSource gebunden ist. Daher wird die Datenquelle zunächst keine Elemente enthalten. Wenn Sie andererseits IBindingList auf eine Sammlung von Elementen festlegen, wird die Datenquelle mit diesen Elementen an ein DataSource gebunden.

Wenn Sie also einen Typ zuweisen, erhalten Sie eine leere Liste von Elementen, während Sie beim Zuweisen einer Sammlung eine Liste mit Elementen aus der Sammlung erhalten.

Wenn Sie einen Basistyp zuweisen, erhalten Sie eine leere Liste von Basistyp-Elementen. Die Datenbindung "kennt" keine abgeleiteten Klassen.

    
Martin Liversage 18.08.2014, 17:31
quelle
2

Wenn Sie die Datenquelle als einen Typ definieren, definieren Sie, welche Art von Typ Sie später behandeln werden. Dies hilft beim Binden von Eigenschaften von diesem Objekt an Elemente im Designer.

Die Einstellung des Wertes wird zu einem späteren Zeitpunkt benötigt, um zu definieren, welche Daten tatsächlich angezeigt werden.

Bearbeiten: Und Sie können nur auf Eigenschaften zugreifen, die sich auf die Klasse beziehen, die Sie behandeln, und nicht auf Elternklassen.

    
helgeheldre 18.08.2014 17:38
quelle