combit List & Label 30 - .NET Hilfe
combit.Reporting.DataProviders Namespace / ObjectDataProvider Klasse
Member


ObjectDataProvider Klasse

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

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
ObjectDataProvider Klasse
Syntax
'Deklaration
 
Public NotInheritable Class ObjectDataProvider 
   Implements ICanHandleUsedIdentifiers, IDataProvider, combit.Reporting.ISupportsLogger 
 
Bemerkungen

Um die einzlenen Eigenschaften der Klasse beeinflussen zu können, stehen die folgenden Möglichkeiten zur Verfügung:

  • Implementieren der ITypedList-Schnittstelle in der Klasse, um Namen und Typen bestimmen zu können implementieren
  • Das DisplayName-Attribut für den Namen verwenden
  • Das FieldType-Attribut für den Typen verwenden
  • Das Attribut Browsable(false) verwendet, um Eigenschaften zu unterdrücken
Beispiele
class Car
{
    public string Brand { get; set; }
    public string Model { get; set; }
   
    [FieldType(LlFieldType.PDF)]
    public string FactSheet { get; set; }
   
    [Browsable(false)]
    public double Discount { get; set; }
}

List<Car> cars = new List<Car>();
cars.Add(new Car { Brand = "VW", Model = "Passat", FactSheet = @"c:\temp\VWPassatSheet.pdf", Discount = 10});
cars.Add(new Car { Brand = "Porsche", Model = "Cayenne", FactSheet = @"c:\temp\PorscheCayenneSheet.pdf", Discount = 15});

LL.DataSource = new ObjectDataProvider(cars);
LL.Design();
Vererbungshierarchie

System.Object
   combit.Reporting.DataProviders.ObjectDataProvider

Anforderungen

Siehe auch