In diesem Schritt
- Ein berechnetes Attribut „Hintergrundfarbe“ anlegen
- Es der Liste als Hintergrundfarbe zuweisen
- Die Farbe in C# bestimmen
Ein Attribut für die Farbe
Lege an der Entität Messmittel ein weiteres Attribut an: Hintergrundfarbe, Typ string, mit run code for value. Es funktioniert wie das Attribut Nächste Kalibrierung am aus Schritt 9: Der Wert wird berechnet.
Eine eigene Spalte bekommt die Hintergrundfarbe nicht. Sie soll die Zeile einfärben, nicht als Text dastehen.
Die Liste einfärben
Öffne die table view Messmittel und wähle bei background color das Attribut Hintergrundfarbe.
Mit foreground color könntest du auf dieselbe Weise die Schriftfarbe steuern.
Die Farbe in C# bestimmen
Generiere den Code und baue die Lösung in Visual Studio. Den Fehler kennst du schon: Diesmal fehlt GetHintergrundfarbe(). Mit Strg+. und Implement missing members entsteht wieder der Rahmen.
Ausgemusterte Messmittel werden grau, überfällige zartrosa, alle anderen bleiben, wie sie sind:
using System.Drawing;
// … in der Klasse Messmittel:
public override string? GetHintergrundfarbe()
{
if (Ausgemustert == true)
{
return nameof(Color.LightGray);
}
if (NächsteKalibrierungAm < DateTime.Today)
{
return nameof(Color.MistyRose);
}
return null;
}
Die Methode liefert den Namen einer Farbe als Text. nameof(Color.MistyRose) ergibt "MistyRose", und der Compiler bewahrt dich dabei vor Tippfehlern. Weil der Vergleich mit DateTime.Today arbeitet, ist ein Messmittel, das heute fällig ist, noch nicht überfällig.
Das Ergebnis
Drücke F5 und öffne die Messmittel:
Der Endmaßsatz ist überfällig und fällt sofort auf. Die Messuhr ist ausgemustert und tritt grau in den Hintergrund.
Geschafft!
In zehn Schritten hast du:
- eine Lösung mit zwei Datenbanken und einer Visual-Studio-Lösung angelegt
- eine Entität mit sieben eigenen Attributen modelliert
- mit einem Klick Formular, Liste und Eintrag im Hauptfenster erzeugt
- eine Windows-Forms-Anwendung mit Benutzerverwaltung, Unicode und Eindeutigkeitsprüfung bekommen
- zwei Stücke Fachlogik in C# geschrieben, genau dort, wo der Compiler sie verlangt hat
Du hast dabei keine Tabelle angelegt, kein Formular gezeichnet und keinen Datenzugriff programmiert. Deine eigenen Zeilen Code drehen sich nur um das, was dein Fachgebiet ausmacht: wann ein Messmittel fällig ist und wie man das sieht.
Wie geht es weiter? Lege eine zweite Entität an, zum Beispiel „Kalibrierung“ mit einem Verweis auf das Messmittel. Mache Pflichtfelder zu Pflichtfeldern. Gib dem Eintrag im Hauptfenster ein eigenes Symbol. Und wenn du Daten brauchst, die zum Modell selbst gehören, hilft dir der Leitfaden Modelldaten in Charis.