Datenquellen

Erstellen einer einfachen Datenquelle mit UI

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

Die einfachste Methode, um einer CustomList zu bauen, ist sie mit generischen Properties auszustatten, wie im CatFacts-Beispiel gezeigt. Für den Fall, dass eine anspruchsvollere UI nötig ist, lassen sich die Properties durch eine eigene UI ersetzen, indem die Funktion GetControlOverride überschrieben wird. Sie liefert eine Instanz eines WPF-Controls zurück.

        protected override FrameworkElement GetControlOverride()
        {
            // return an instance of the UI user control
            return new AirportConditionUIControl();
        }

Die Code-Seite dieses CustomControls ist durch eine Klasse repräsentiert, die von CustomListUserControlBase erbt. Wichtig dabei ist, dass die beiden Funktion GetParameterOverride und SetParameterOverride implementiert werden. Sie dienen für Serialisierung und Deserialisierung der Metadaten. Die Metadaten werden nur durch einen einzelnen String repräsentiert. Um mehr als einen Wert in diesem String zu speichern, eventuell sogar sehr komplexe Metadaten, ist ein typische Programmierpattern die Metadaten über eine JSon-Serialisierung zu managen, wie im folgenden Beispiel gezeigt:

       protected override string GetParameterOverride()
        {
            Airport myAirport = new Airport();
            if (radEDDK.IsChecked ?? false)
                myAirport.AirportCode = "EDDK";
            else if (radEDDB.IsChecked ?? false)
                myAirport.AirportCode = "EDDB";
            else if (radEDDF.IsChecked ?? false)
                myAirport.AirportCode = "EDDF";
            else if (radEDDM.IsChecked ?? false)
                myAirport.AirportCode = "EDDM";
            else if (radEDDH.IsChecked ?? false)
                myAirport.AirportCode = "EDDH";
            else 
                myAirport.AirportCode = "EDDS";
            return JsonConvert.SerializeObject(myAirport);
        }
        protected override void SetParameterOverride(string parameter)
        {
            Airport myAirport = new Airport();
            if (parameter != null)
                myAirport = JsonConvert.DeserializeObject<Airport>(parameter);
            if (myAirport.AirportCode.Equals("EDDK"))
                this.radEDDK.IsChecked = true;
            else if (myAirport.AirportCode.Equals("EDDB"))
                this.radEDDB.IsChecked = true;
            else if (myAirport.AirportCode.Equals("EDDF"))
                this.radEDDF.IsChecked = true;
            else if (myAirport.AirportCode.Equals("EDDM"))
                this.radEDDM.IsChecked = true;
            else if (myAirport.AirportCode.Equals("EDDH"))
                this.radEDDH.IsChecked = true;
            else
                this.radEDDS.IsChecked = true;
        }

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.