2016-03-28 23 views
0

Ich möchte wissen, wie man den Bereich der Daten erhält, die der Benutzer auf dem CalendarView-Steuerelement der Universal Windows Platform sehen kann. Ich habe bereits versucht, auf der Microsoft-Website zu suchen, aber ich kann nichts finden.UWP Kalenderansicht sichtbarer Datumsbereich

Antwort

0

1. standardmäßig das Minimum Datum im CalendarView gezeigt ist 100 Jahre vor dem aktuellen Datum und das maximale Datum 100 Jahre nach dem aktuellen Datum angezeigt ist.

Sie können das minimale und maximale Datum ändern, das der Kalender anzeigt, indem Sie die Eigenschaften MinDate und MaxDate festlegen. Zum Beispiel wie folgt aus:

calendarView.MinDate = new DateTime(2000, 1, 1); 
calendarView.MaxDate = new DateTime(2099, 12, 31); 

Sie können auch den Bereich von Daten wie diese:

var minDate = calendarView.MinDate; 
var maxDate = calendarView.MaxDate; 

2. Wenn das, was Sie tun möchten, ist der sichtbare Bereich des CalendarView Veränderung (durch . Standard es beginnt mit der Monatsansicht geöffnet, zeigt es 6 Reihen von Daten, die den aktuellen Monat enthalten) können Sie CalendarView.SetDisplayDate method zum Beispiel wie folgt verwenden:

DateTime localTime = new DateTime(2007, 07, 12, 06, 32, 00); 
DateTimeOffset dateAndOffset = new DateTimeOffset(localTime, TimeZoneInfo.Local.GetUtcOffset(localTime)); 
calendarView.SetDisplayDate(dateAndOffset); 

In diesem Beispiel zeigt die CalendarView den Monat 2007/7.

3. Wie gesagt, wird standardmäßig die Anzahl der Wochen in der Kalenderansicht angezeigt 6 ist, können Sie es durch CalendarView.NumberOfWeeksInView property ändern, zum Beispiel in XAML-Code:

<CalendarView x:Name="calendarView" NumberOfWeeksInView="8" /> 

Oder Code hinter :

calendarView.NumberOfWeeksInView = 8; 

Die Mindestanzahl der zu zeigenden Wochen ist 2, das Maximum ist 8;

4. Neben der Monatsansicht gibt es auch Jahresansicht und zehn Jahre Blick in CalendarView, können Sie es zum Beispiel in XAML-Code mit CalendarView.DisplayMode property ändern:

<CalendarView x:Name="calendarView" DisplayMode="Year"/> 

Oder in Code-behind:

calendarView.DisplayMode = CalendarViewDisplayMode.Decade; 

Da Sie eine ziemlich einfache aber breite Frage gestellt haben, liste ich alle Möglichkeiten auf, an die ich denken konnte. Wenn Sie weitere Fragen zu diesem Steuerelement haben, überprüfen Sie bitte erneut CalendarView class.

+0

Vielen Dank für Ihre Antwort, meine Frage könnte in der Tat breit sein Entschuldigung, was ich eigentlich meinte war: Der Benutzer scrollt, navigiert oder w/e durch den Kalender, wie ist es mir möglich zu wissen, welche Tage (Datumsbereich) werden zu einem Zeitpunkt im Kalender angezeigt. Sie sehen, dass dies mein genaues Problem ist, sobald der Benutzer anfängt zu navigieren, habe ich keine Ahnung, wie ich wissen soll, was er genau an diesem Punkt sieht. Der Grund dafür ist, dass ich Daten von einer API basierend auf den angezeigten Daten laden möchte: Zum Beispiel: – NicolasL

+0

Benutzer scrollt; 30/03 erscheint in der Kalenderansicht => Lade Daten für 30/03 von der API.Die Sache ist, ich habe etwas in der Nähe zu arbeiten mit dem CalendarViewDayItemChanged-Ereignis, aber aus irgendwelchen Gründen lädt es zufällige Daten, wenn das Steuerelement erstellt wird, so mache ich unbrauchbare API-Aufrufe wegen – NicolasL

+0

@NicolasL, gibt es ein Ereignis ' CalendarViewDayItemChanging ', das ausgelöst wird, wenn Benutzer dieses Steuerelement scrollt, aber für jeden Tag Elemente ausgelöst wird, wird dies Ihre Ladedaten sehr schwer arbeiten lassen. Für Ihr Szenario ist es besser, das Ereignis "SelectedDatesChanged" zu verwenden, wenn der Benutzer einen Tag auswählt und die Daten für diesen Tag lädt. –