Windows Phone- Dodanie wielu zadań do kalendarza

Windows Phone- Dodanie wielu zadań do kalendarza
B1
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 6 lat
  • Postów:70
0

Cześć, mam problem z pewna kwestią.
Mam stronę gdzie użytkownik wybiera sobie dni tygodnia, godzinę treningu oraz przez ile tygodni ma byc cykl powtarzany.
Na podstawie tych danych tworze listę dat, które wykorzystuje przy tworzeniu zadań wysyłanych do kalendarza.

Wiem, że mało profesjonalnie wygląda to ale tworzenie tablicy dat wygląda tak:

Kopiuj
 
List<DateTime> listaDat = new List<DateTime>();
            StworzListe();
            ListPickerItem selectedItem = (ListPickerItem)listaIloscTygodni.SelectedItem;
            string content = (string)selectedItem.Content;  
            int iloscTygodni = Convert.ToInt16(content);
           
            double godzina = Convert.ToDouble(textBoxGodzina.Text) + Convert.ToDouble(textBoxMinuta.Text) / 60;
            for (int i = 0; i < iloscTygodni; i++)
            {
                for (int j = 0; j < listaDnitygodnia.Count; j++)
                {
                    if(i==0)
                        listaDat.Add(DateTime.Now.Date.AddHours(((listaDnitygodnia[j] * 24) + godzina)));
                    else
                        listaDat.Add(DateTime.Now.Date.AddHours((((listaDnitygodnia[j]+(i*7)) * 24 + godzina))));
                }
            }

Następnie chce w pętli stworzyć zadania

Kopiuj
for(int i = 0 ; i< listaDat.Count; i++)
            {
                SaveAppointmentTask saveAppointmentTask = new SaveAppointmentTask();
                saveAppointmentTask.StartTime = listaDat[i];
                saveAppointmentTask.EndTime = listaDat[i].AddMinutes(15);
                saveAppointmentTask.Subject = "FitnessApp - cwiczenie";
                saveAppointmentTask.Details = "cwiczenie na niewiadomo co";
                saveAppointmentTask.IsAllDayEvent = false;
                saveAppointmentTask.Reminder = Reminder.FifteenMinutes;
                saveAppointmentTask.AppointmentStatus = Microsoft.Phone.UserData.AppointmentStatus.Busy;
                saveAppointmentTask.Show();
                saveAppointmentTask = null;
            } 

Po wyskoczeniu okienka, podczas szukania co moze byc nie tak, po powrocie z okienka windowsowskiego zapisu do ostatniej aktywnosci aplikacji, lista jest pusta i wychodzi z petli po pierwszym przejsciu. Probowałem równiez przekazac cala liste typu SaveAppointmentTask, ale nie doszedłem do tego w jaki sposób można to zrobić.

Moje pytania:

  1. Czy da się zrobić tak zeby zapisać zadanie bez wyskakiwania okienka z kalendarza na które musimy klikać zapisz.
  2. Czy mozliwe jest, i w jaki sposób przekazanie wielu zadań z róznymi datami za pomocą jednego wywołania metody.
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 5 godzin
1

Nie, używając SaveAppointmentTask użytkownik musi wyrazić zgodę na dodanie do kalendarza i musi to być zrobione pojedynczo.

Aczkolwiek, jeżeli piszesz aplikację WinRT (bo nie wiem czy to działa dla Silverlight) możesz skorzystać z czegoś takiego, co nazywa się app calendars i stworzyć w swojej aplikacji własny kalendarz, który użytkownik może sobie pokazać w aplikacji kalendarza. Nie jest to dodawanie do jego własnego kalendarza, ale masz większą władzę nad "swoim" kalendarzem - znaczy możesz dodawać i zmieniać bez ograniczeń. W taki sposób działa np. Facebook i jego oddzielny kalendarz z wydarzeniami.

Więcej informacji: https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn631243.aspx

Alternatywnie, możesz dostać się bezpośrednio do czyjegoś kalendarza na Outlook.com i po nim "pisać" - przejrzyj http://blogs.u2u.be/diederik/post/2014/07/30/Universal-Windows-Apps-a-Tale-of-Two-Calendars.aspx, tam jest opis o Live SDK.

B1
Ok, dzięki wielkie, tak właśnie po przeglądaniu różnych zasobów dopuszczałem to, że będzie nie możliwe dodanie kilku zadań. Więc nie pozostaje mi nic innego jak napisać własnny kalendarz i połaczyc z powiadomieniami o nadchodzących zdarzeniach. Wielkie dzięki za pomoc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.