private void OpenItem(PakFileBrowserItem item) { if (item is PakFileBrowserFolderItem) { var folder = (item as PakFileBrowserFolderItem); CurrentView = new PakBrowserView(VirtualFileSystem.GetFolder(folder.FolderPath)); _navigationStack.Push(CurrentView); OnPropertyChanged(nameof(CanNavigateBack)); } }
private void NavigateParent() { if (CurrentView.VirtualFolder == VirtualFileSystem.Root) { return; } string parentPath = CurrentView.VirtualFolder.Path.Substring(0, CurrentView.VirtualFolder.Path.LastIndexOf('/')); CurrentView = new PakBrowserView(VirtualFileSystem.GetFolder(parentPath)); _navigationStack.Push(CurrentView); }
public MainViewModel() { _navigationStack = new Stack <PakBrowserView>(); _navigationPath = ""; StatusText = "No pak loaded"; CurrentView = new PakBrowserView(new VirtualFolder("")); SelectedItems = new ObservableCollection <PakFileBrowserFileItem>(); SelectedItems.CollectionChanged += delegate { OnPropertyChanged(nameof(HasSelectedItems)); }; OpenItemCommand = new RelayCommand <PakFileBrowserItem>(OpenItem); NavigateBackCommand = new RelayCommand(NavigateBack); NavigateToParentCommand = new RelayCommand(NavigateParent); ExportFileListCommand = new RelayCommand(async() => await ExportFileListAsync(), () => VirtualFileSystem != null); DecryptPakCommand = new RelayCommand(async() => await DecryptPakAsync(), () => CurrentPak != null && CurrentPak.IsIndexEncrypted); ExportFileCommand = new RelayCommand(async() => await ExportFileAsync()); SwapFileCommand = new RelayCommand(async() => await SwapFileAsync()); }