コード例 #1
0
        private void Selected_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "StepNumber")
            {
                var eventArgs = e as PropertyChangedExtendedEventArgs <int>;

                var tmp = new StepViewModel(StepItems[eventArgs.OldValue]);
                StepItems.RemoveAt(eventArgs.OldValue);
                StepItems.Insert(eventArgs.NewValue, tmp);

                for (int i = 0; i < StepItems.Count(); i++)
                {
                    StepItems[i].StepNumber = i;
                }

                Selected = StepItems[eventArgs.NewValue];
            }
            if (e.PropertyName == "NewItem")
            {
                var eventArgs = e as PropertyChangedExtendedEventArgs <StepViewModel>;

                if (eventArgs.OldValue.NextStepAvaiable)
                {
                    StepItems.Insert(eventArgs.OldValue.StepNumber, eventArgs.NewValue);
                    Selected = StepItems[eventArgs.OldValue.StepNumber];
                }
                else
                {
                    StepItems.Add(eventArgs.NewValue);
                    Selected = StepItems[StepItems.Count - 1];
                }
                StepViewModel.MaxSteps = StepItems.Count;
                for (int i = 0; i < StepItems.Count(); i++)
                {
                    StepItems[i].StepNumber = i;
                }
            }
            if (e.PropertyName == "RemoveItem")
            {
                var tmp = sender as StepViewModel;

                StepItems.Remove(sender as StepViewModel);
                StepViewModel.MaxSteps = StepItems.Count;
                for (int i = 0; i < StepItems.Count(); i++)
                {
                    StepItems[i].StepNumber = i;
                }


                if (tmp.StepNumber == 1)
                {
                    Selected = StepItems[0];
                }
                else
                {
                    Selected = StepItems[tmp.StepNumber - 2];
                }
            }
            InstructionDataProvider.UpdateData(ConvertToListofSteps(StepItems));
        }
コード例 #2
0
        private async void ShellMenuItemClick_File_Export(object sender, RoutedEventArgs e)
        {
            var savePicker = new Windows.Storage.Pickers.FileSavePicker();
            savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
            // Dropdown of file types the user can save the file as
            savePicker.FileTypeChoices.Add("zip-File", new List<string>() { ".zip" });
            // Default file name if the user does not type one in or select a file to replace
            if (InstructionDataProvider.Instruction != null && !string.IsNullOrEmpty(InstructionDataProvider.Instruction.Name))
            {
                savePicker.SuggestedFileName = InstructionDataProvider.Instruction.Name;
            }

            StorageFile file = await savePicker.PickSaveFileAsync();
            if (file != null)
            {
                // Prevent updates to the remote version of the file until
                // we finish making changes and call CompleteUpdatesAsync.
                Windows.Storage.CachedFileManager.DeferUpdates(file);
                // write to file
                //var stream = await file.OpenStreamForWriteAsync();

                using (Stream zipFileToSave = await file.OpenStreamForWriteAsync())
                {
                    zipFileToSave.SetLength(0);
                    await InstructionDataProvider.ExportAsync(ApplicationData.Current.TemporaryFolder.Path, file.DisplayName , zipFileToSave);
                }

                // Let Windows know that we're finished changing the file so
                // the other app can update the remote version of the file.
                // Completing updates may require Windows to ask for user input.
                Windows.Storage.Provider.FileUpdateStatus status =
                    await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file);
                if (status == Windows.Storage.Provider.FileUpdateStatus.Complete)
                {
                }
                else
                {
                }
            }
            else
            {
            }
        }
コード例 #3
0
        private async void ButtonLoad_Click(object sender, RoutedEventArgs e)
        {
            var picker = new Windows.Storage.Pickers.FileOpenPicker();

            picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
            picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
            picker.FileTypeFilter.Add(".zip");

            StorageFile file = await picker.PickSingleFileAsync();

            if (file != null)
            {
                loading = true;
                using (Stream zipToOpen = await file.OpenStreamForReadAsync())
                {
                    await InstructionDataProvider.LoadDataFromZipAsync(zipToOpen, Path.Combine(ApplicationData.Current.TemporaryFolder.Path, file.DisplayName + ".save"));
                }

                NavigationService.Navigate <MasterDetailPage>();
            }
        }
コード例 #4
0
        private async void ShellMenuItemClick_File_Load(object sender, RoutedEventArgs e)
        {
            if (NavigationService.Frame.Content is MasterDetailPage)
            {
                ContentDialog loadFileDialog = new ContentDialog
                {
                    Title = "Load instruction?",
                    Content = "Unsaved changes will be lost. Export your instruction before loading a new one.",
                    PrimaryButtonText = "Load instruction",
                    CloseButtonText = "Cancel"
                };

                ContentDialogResult result = await loadFileDialog.ShowAsync();

                if (result == ContentDialogResult.Primary)
                {
                    var page = NavigationService.Frame.Content as MasterDetailPage;
                    if (page != null)
                    {
                        var picker = new Windows.Storage.Pickers.FileOpenPicker();
                        picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
                        picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
                        picker.FileTypeFilter.Add(".zip");

                        StorageFile file = await picker.PickSingleFileAsync();
                        if (file != null)
                        {
                            using (Stream zipToOpen = await file.OpenStreamForReadAsync())
                            {
                                await InstructionDataProvider.LoadDataFromZipAsync(zipToOpen, Path.Combine(ApplicationData.Current.TemporaryFolder.Path, file.DisplayName + ".save"));
                            }
                            page.Reset(false);
                        }
                        
                    }
                }
                else
                {
                    return;
                }
            }
            else
            {
                if (NavigationService.Frame.Content is StartPage)
                {
                    var picker = new Windows.Storage.Pickers.FileOpenPicker();
                    picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
                    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
                    picker.FileTypeFilter.Add(".zip");

                    StorageFile file = await picker.PickSingleFileAsync();
                    if (file != null)
                    {
                        var page = NavigationService.Frame.Content as StartPage;
                        page.loading = true;

                        using (Stream zipToOpen = await file.OpenStreamForReadAsync())
                        {
                            await InstructionDataProvider.LoadDataFromZipAsync(zipToOpen, Path.Combine(ApplicationData.Current.TemporaryFolder.Path, file.DisplayName + ".save"));
                        }
                        NavigationService.Navigate<MasterDetailPage>();
                    }
                }
            }
        }