none
Calendar DisplayMode "festhalten" RRS feed

  • Frage

  • Hallo!

    Ich möchte die Umschaltung des DisplayMode des Calendar-Objektes beim Selektieren einer Auswahl (anklicken) verhindern.

    Wenn ich den DisplayMode in XAML z.B. auf YEAR gesetzt habe, werden beim Start der Anwendung im Calendar-Objekt die Monate des Jahres angezeigt. Sobald ich aber auf einen Monat klicke, schaltet die Anzeige sofort auf die Tagessicht um. Wenn ich jetzt einen anderen Monat auswählen möchte, muss ich erst wieder oben auf den Monat+Jahreszahl klicken, um wieder in die Monatsansicht zu gelangen.

    Kann ich diese automatische Sicht-Umschaltung verhindern?

    Fred.

    Dienstag, 28. Januar 2020 17:13

Alle Antworten

  • Hallo Fred,

    Gegenfrage: Was soll denn passieren, wenn Du einmal klickst? Soll dann nur der Monat in der Ansicht ausgewählt werden?

    Willst Du auch in die Tagesansicht wechseln können und falls ja, wie soll das dann funktionieren? Doppelklick? ...?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Dienstag, 28. Januar 2020 17:26
  • Hallo Stefan!

    Danke für deine Antwort!

    Ja, so ähnlich. Durch einmal klicken soll ein anderer Monat selektiert werden und das SelectedDate auf den 1. des entsprechenden Monat's verweisen. Eine Umschaltung auf die Tagesansicht ist nicht notwendig. Deine Überlegung aber auch gut.  -> Funktionalität: Monatsauswahl.

    Dementsprechend das Gleiche mit der Jahresansicht (Decade). SelectedDate 1.1. des entsprechenden Jahres -> Funktionalität: Jahresauswahl.

    Ein Abfangen des DisplayModeChanged-Event führt zwar nicht zu einer Endlosschleife, setzt aber bei der Jahresansicht (Decade) die Ansicht jeweils um eine Dekade nach vorn. Bei der Monatsansicht funktioniert es erst einmal wie gewünscht, in beiden Fällen wird das SelectedDate aber auf null gesetzt.

    private void mcUeberweisungsdatum_DisplayModeChanged(object sender, CalendarModeChangedEventArgs e)
    {
        mcUeberweisungsdatum.DisplayMode = CalendarMode.Month;
    }
    

    Mir ist schon bewusst, dass man dies als Control (schnell) realisieren kann, aber im Calendar-Control ist doch schon alles vorhanden.

    Fred.

    Mittwoch, 29. Januar 2020 07:36