public TodoItemsViewModel()
        {
            TodoList       = new ObservableCollection <TodoItem>();
            AddTodoCommand = new RelayCommand(() =>
            {
                TodoList.Add(new TodoItem($"Neues ToDo {TodoItem.LastID + 2}", "...", DateTime.Now + TimeSpan.FromDays(1)));
                SelectedItem = TodoList[TodoList.Count - 1];
                DeleteTodoCommand.OnCanExecuteChanged();
            });
            DeleteTodoCommand = new RelayCommand(() =>
            {
                TodoList.Remove(SelectedItem);
                DeleteTodoCommand.OnCanExecuteChanged();
            },
                                                 () => SelectedItem != null
                                                 );
            NextTodoCommand = new RelayCommand(() =>
            {
                if (TodoList.IndexOf(SelectedItem) < TodoList.Count - 1)
                {
                    SelectedItem = TodoList[TodoList.IndexOf(SelectedItem) + 1];
                }
                else
                {
                    SelectedItem = TodoList[0];
                }
            });
            PreviewTodoCommand = new RelayCommand(() =>
            {
                if (TodoList.IndexOf(SelectedItem) > 0)
                {
                    SelectedItem = TodoList[TodoList.IndexOf(SelectedItem) - 1];
                }
                else
                {
                    SelectedItem = TodoList.Last();
                }
            });
            SaveTodosCommand = new RelayCommand(() =>
            {
                TodoStorageService.SaveTodos();
            });
            ToggleFavoriteCommand = new RelayCommand <object>(HandleNotifications);

            Task.Factory.StartNew(async() =>
            {
                try
                {
                    await TodoStorageService.LoadTodos();
                    await Task.Delay(500);
                }
                catch (Exception exp)
                {
                    await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                                                                                                () =>
                    {
                        NoSelectionText = exp.Message;
                        LoadingComplete?.Invoke(this, EventArgs.Empty);
                    });
                    return;
                }
                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                                                                                            () =>
                {
                    this.TodoList   = TodoItemManager.ItemList;
                    NoSelectionText = TodoList.Count > 0 ? "Wähle ein Todo aus oder erstelle ein Neues!" : "Erstelle dein erstes Todo!";
                    LoadingComplete?.Invoke(this, EventArgs.Empty);
                });
            });
        }