Laden...

Welche Möglichkeiten habe ich einen Kalender im "Outlook"-Style zu designen?

Erstellt von echdeneth vor 3 Jahren Letzter Beitrag vor 3 Jahren 425 Views
echdeneth Themenstarter:in
161 Beiträge seit 2019
vor 3 Jahren
Welche Möglichkeiten habe ich einen Kalender im "Outlook"-Style zu designen?

Moin, ich möchte wie angeteast in einer App einen Monatskalender (u.a.) erstellen,
in welchem Einträge/Termine erstellt werden können. Habe sowas leider noch nie gemacht.
Ausdrücklich nicht per NuGet, da so kein Lerneffekt.
Enthält ein <Calendar/> Element, WPF/MVVM kein Muss

Meine (unausgegorenen) beiden Ansätze bisher:

  1. Ein Grid mit 7 Spalten und 5 Zeilen + 1 für Wochentage
  • 35 Elemente die alle ein Binding brauchen?
  • keine rechte Vorstellung von der Objekt/Klassenstruktur...
  1. Ein Datagrid
  • SpaltenHeader: Wochentage
  • Klasse (Prop: Mo-So, Kalenderwoche, ...)
  • Darstellung des Kalendermonats durch Kalkulatuion der Kalenderwoche oder mit <Calendar/>

gibt es noch andere Ideen?

"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein

5.658 Beiträge seit 2006
vor 3 Jahren

Für die Benutzeroberfläche würde ich ein Grid mit SharedSizeGroup in einem ItemsTemplate verwenden. Als Datenmodell hat du eine Auflistung von Wochen verwenden, die eine Auflistung von (jeweils 7) Tagen haben. Die Anzahl der Wochen sollte dabei allerdings nicht statisch sein, weil ein Februar auch hin und wieder mal nur 4 Wochen haben wird.

Diese Listen kannst du dann an das ItemsTemplate binden, und dem Grid das Layout überlassen. Hier gibt es ein Code-Beispiel: Generating grid dynamically in MVVM pattern.

Daß du keine fertige Lösung verwenden willst, heißt ja nicht, daß du nicht auch in Code von anderen Leuten reinschauen kannst, die das schon mal umgesetzt haben. Kalender wurden schon mehrfach umgesetzt, und der Algorithmus und das Datenmodell basieren meistens auf dem gleichen Prinzip.

Du solltest bei deinem Datenmodell dann halt noch beachten, daß sich Termine über mehrere Tage oder sogar Monate erstrecken können.

Weeks of programming can save you hours of planning

190 Beiträge seit 2012
vor 3 Jahren

Ich würde es mit einem UniformGrid versuchen. Columns = 7

  • Wer lesen kann, ist klar im Vorteil
  • Meistens sitzt der Fehler vorm Monitor
  • "Geht nicht" ist keine Fehlermeldung!
  • "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"

GidF

P
57 Beiträge seit 2017
vor 3 Jahren

Hallo,

schau doch mal hier: http://www.nullskull.com/a/1382/styling-the-wpf-calendar-to-resemble-outlooks-month-view-calendar.aspx

Stimme meinen Vorrednern zu - schau dir den Code mal an und abstrahiere das auf deine Bedürfnisse. Dann hast du auch einen Lerneffekt.

.....an unhandled exception is the first way to think about your pattern of programming....
.....nur weil ich nicht weiß was dort passiert, bedeutet es nicht, dass ich nicht weiß, wie man es lösen kann - aber das ist wahrscheinlich....

echdeneth Themenstarter:in
161 Beiträge seit 2019
vor 3 Jahren

Das "Grid mit SharedSizeGroup in einem ItemsTemplate" mache ich auch noch, dafür fehlt mir etwas Erfahrung.

Vorerst mache ich mich an Platoon's:
http://www.nullskull.com/a/1382/styling-the-wpf-calendar-to-resemble-outlooks-month-view-calendar.aspx
ran, nicht zwangsläufig im Outlook-Style eher im Material-Style aber es wird gut erklärt.

Danke

"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein