ObjectDataProvider Klasse
In diesem Thema
Dieser Datenprovider kann dazu verwendet werden auf Objektstrukturen zuzugreifen. Er kann dabei mit folgenden Typen/Schnittstellen zusammenarbeiten:
- IEnumerable (setzt jedoch mindestens einen Datensatz voraus)
- IEnumerable<T>
- IListSource
Um die Eigenschaftsnamen und -typen zu beeinflussen, können Sie entweder die ITypedList Schnittstelle in Ihrer Klasse implementieren oder DisplayNameAttribute verwenden. Um Member zu unterdrücken, wenden Sie das Attribut Browsable(False) auf die Member an.
Der Provider kann leere Aufzählungen durchlaufen solange diese stark typisiert sind. Ansonsten wird mindestens ein Element in der Aufzählung vorausgesetzt. Dieses erste Element bestimmt den Typ der für das weitere Durchlaufen verwendet wird.
Der Provider unterstützt Sortierung automatisch sobald die Datenquelle die IBindingList Schnittstelle implementiert.
Sie können diesen Datenprovider auch dazu verwenden um auf LINQ Abfrageresultate zuzugreifen, da diese IEnumberable<T> sind.
Bei Verwendung von EntityCollection<T>-Objekten als Datenquelle prüft der ObjectDataProvider zunächst mit Hilfe der IsLoaded-Eigenschaft den Zustand der Unterrelation und ruft gegebenenfalls dynamisch Load() auf. Damit werden die Daten nur bereitgestellt wenn sie benötigt werden.
Objektmodell
Syntax
Beispiele
class Car
{
public string Brand { get; set; }
public string Model { get; set; }
}
List<Car> cars = new List<Car>();
cars.Add(new Car { Brand = "VW", Model = "Passat"});
cars.Add(new Car { Brand = "Porsche", Model = "Cayenne"});
LL.DataSource = new ObjectDataProvider(cars);
LL.Design();
Class Car
Private m_Brand As String
Public Property Brand() As String
Get
Return m_Brand
End Get
Set
m_Brand = Value
End Set
End Property
Private m_Model As String
Public Property Model() As String
Get
Return m_Model
End Get
Set
m_Model = Value
End Set
End Property
End Class
Dim cars As New List(Of Car)()
cars.Add(New Car() With {.Brand = "VW", .Model = "Passat"})
cars.Add(New Car() With {.Brand = "Porsche", .Model = "Cayenne"})
LL.DataSource = New ObjectDataProvider(cars)
LL.Design()
Vererbungshierarchie
System.Object
combit.Reporting.DataProviders.ObjectDataProvider
Anforderungen
Siehe auch