Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Welche Möglichkeiten habe ich einen Kalender im "Outlook"-Style zu designen?
echdeneth
myCSharp.de - Member



Dabei seit:
Beiträge: 148
Herkunft: Sachsen, Herrnhut/Zittau

Themenstarter:

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

beantworten | zitieren | melden

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...


2. 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
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5963
Herkunft: Leipzig

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Wilfried
myCSharp.de - Member

Avatar #2TnJ7IKlYXgOor5sZSIA.jpg


Dabei seit:
Beiträge: 90
Herkunft: Radeberg

beantworten | zitieren | melden

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 !

GidF
private Nachricht | Beiträge des Benutzers
Platoon
myCSharp.de - Member



Dabei seit:
Beiträge: 46
Herkunft: NRW

beantworten | zitieren | melden

Hallo,

schau doch mal hier:

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....
private Nachricht | Beiträge des Benutzers
echdeneth
myCSharp.de - Member



Dabei seit:
Beiträge: 148
Herkunft: Sachsen, Herrnhut/Zittau

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers