Datenquellen

Erstellen einer einfachen Datenquelle ohne UI

Die folgenden Erklärungen beziehen sich auf ein Beispiel, dass hier heruntergeladen werden kann.

Klassen, die von CustomListBase erben, repräsentieren eine Datenquelle. Im Folgenden werden die einzelnen, zu überschreibenden Funktionen erklärt:

GetDefinitionOverride liefert die Metadaten für die Datenquelle.
        protected override CustomListDefinition GetDefinitionOverride()
        {
            return new CustomListDefinition
            {
                ID = $"CatFactsCustomList",
                Name = "Cat Facts",
                Description = "Random cute stuff about cats", 
                PropertyInputPossible = true,
                PropertyInputDefaults = {
                    new CustomListPropertyDefinition(){ Name = "MaxLength", Value = "140"}
                }
            };
        }

Dabei sind insbesondere die Properties wichtig. Die Collection an Properties repräsentiert die Einstellungen, die der Enduser später in der UI des Designers vornehmen kann. Der Code von oben sieht später in der UI wie folgt aus: img01

Folgende Attribute kann eine Property haben:

  • Name
  • Value - der Defaultwert
  • MultiLine - Gibt dem User ein großes Textfeld (z.B. für SQL-Statements)
  • Masked - verbirgt dem User den Wert (z.B. für Passwörter) CheckDataOverride wird aufgerufen, wenn der Enduser Daten eingeben hat, die auf Plausibilität geprüft werden sollen.
        protected override void CheckDataOverride(CustomListData data)
        {
            if (!data.Properties.TryGetValue("MaxLength", StringComparison.OrdinalIgnoreCase, out var MaxLength))
            {
                throw new InvalidOperationException("The property MaxLength is not defined");
            }
        }

GetColumnsOverride wird gerufen, wenn der Designer Metadaten benötigt, um in der Visualisierung oder der UI auf die Spalten zu reagieren.

        protected override CustomListColumnCollection GetColumnsOverride(CustomListData data)
        {
            return new CustomListColumnCollection
            {
                new CustomListColumn("Fact", CustomListColumnTypes.String),
                new CustomListColumn("Length", CustomListColumnTypes.Number),
            };
        }

GetItemsOverride wird aufgerufen, wenn der tatsächliche Datenaustausch stattfinden soll. Wie im folgenden Beispiel wird eine Collection aus CustomListObjectElement zurückgegeben. Jedes CustomListObjectElement besteht aus den Spaltennamen und den tatsächlichen Werten.

        protected override CustomListObjectElementCollection GetItemsOverride(CustomListData data)
        {
            Int32 maxLength = CheckAndGetMaxLengthProperty(data);
            CatFact myfact = GetRandomCatfact(maxLength).Result;
            var items = new CustomListObjectElementCollection();
            items.Add(new CustomListObjectElement { { "Fact", myfact.fact }, { "Length", myfact.length }, });
            return items;
        }

Wir lernen von dir!

Hat dir dieser artikel geholfen?

Lass dich erleuchten!

Du benötigst weitere unterstützung?

Peakboard Youtube icon Zum YouTube Kanal

Unsere zahlreichen Videos für Einsteiger und Fortgeschrittene erklären dir genau, wie du dein Dashboard gestaltest.

Peakboard Templates icon Zu den Peakboard Templates

Lade dir unsere Templates für die verschiedensten Anwendungsfälle kostenlos herunter.

Peakboard icon Zu www.peakboard.com

Auf unserer Website findest du alle wichtigen Infos zu Peakboard sowie verschiedene Anwendungsfälle und Success Stories.