private void SelectedForLoad(object sender, KanjiListEventArgs e)
        {
            if (isLoading) {
                return;
            }
            isLoading = true;

            progressBar.Visibility = System.Windows.Visibility.Visible;

            var result = vm.SaveKanjiLists();
            if (result.Result == Result.Failure) {
                isLoading = false;
                progressBar.Visibility = System.Windows.Visibility.Collapsed;
                MessageBox.Show(result.Message);
                return;
            }

            vm.CurrentReviewList = e.ViewModelInstance;
            App.KanjiMode = Mode.Review;

            if (!App.AppSettings.IsRandomReviewList && e.ViewModelInstance.Bookmark > 0) {
                App.IsResumeKanji = true;
                App.CurrentKanji = App.KanjiDict.GetKanjiFromDatabase(e.ViewModelInstance.Kanji[e.ViewModelInstance.Bookmark - 1]);
            }

            var worker = new BackgroundWorker();
            worker.DoWork += new DoWorkEventHandler(LoadReviewListAsync);
            worker.WorkerReportsProgress = false;
            worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(LoadKanjiCompleted);
            worker.RunWorkerAsync();
        }
 private void SelectedForEdit(object sender, KanjiListEventArgs e)
 {
     vm.CurrentReviewList = e.ViewModelInstance;
     this.NavigationService.Navigate(new Uri("/Views/EditReviewListView.xaml", UriKind.Relative));
 }
        private void SelectedForAdd(object sender, KanjiListEventArgs e)
        {
            if (isLoading) {
                return;
            }
            isLoading = true;

            progressBar.Visibility = System.Windows.Visibility.Visible;

            var result = vm.AddKanjiToReviewList(e.ViewModelInstance, App.CurrentKanji.Literal);
            if (result.Result == Result.Failure) {
                isLoading = false;
                progressBar.Visibility = System.Windows.Visibility.Collapsed;
                MessageBox.Show(result.Message);
                return;
            }

            result = vm.SaveKanjiLists();

            isLoading = false;
            progressBar.Visibility = System.Windows.Visibility.Collapsed;

            if (result.Result == Result.Failure) {
                MessageBox.Show(result.Message);
                return;
            }

            vm.CurrentReviewList = e.ViewModelInstance;
            App.IsResumeKanji = true;

            SwipeDown.Begin();
        }
 private void SelectedForDelete(object sender, KanjiListEventArgs e)
 {
     vm.DeleteReviewList(e.ViewModelInstance);
 }