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)); }
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 { } }
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>(); } }
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>(); } } } }