コード例 #1
0
 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));
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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());
        }