using Microsoft.Win32; using PDF_Office.EventAggregators; using Prism.Commands; using Prism.Events; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PDF_Office.ViewModels { public class HomeContentViewModel : BindableBase, INavigationAware { private string fileName = "Home"; public string FileName { get { return fileName; } set { SetProperty(ref fileName, value); } } private string regionName; public string ToolRegionName { get { return regionName; } set { SetProperty(ref regionName, value); } } private MainContentViewModel mainContentViewModel; public DelegateCommand OpenFileCommand { get; set; } public DelegateCommand ShowToolCommand { get; set; } public IRegionManager toolregion; public IEventAggregator eventer; public HomeContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator) { toolregion = regionManager; eventer = eventAggregator; ToolRegionName = Guid.NewGuid().ToString(); OpenFileCommand = new DelegateCommand(OpenFile); ShowToolCommand = new DelegateCommand(ShowToolContent); } /// /// 显示右侧不同的工具栏页面 /// /// public void ShowToolContent(string view) { toolregion.RequestNavigate(ToolRegionName, view); } /// /// 打开文件 /// public void OpenFile() { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "PDF Files (*.pdf)|*.pdf"; openFileDialog.Multiselect = true; if ((bool)openFileDialog.ShowDialog()) { if (openFileDialog.FileNames.Count() == 1) { if (App.OpenedFileList.Contains(openFileDialog.FileName)) { App.mainWindowViewModel.SelectItem(openFileDialog.FileName); } else { mainContentViewModel.OpenFile(openFileDialog.FileName); } } else { var fileList = openFileDialog.FileNames.ToList().Where(x => !App.OpenedFileList.Exists(y => y == x)).ToList(); if (fileList.Count <= 0) return; mainContentViewModel.OpenFile(fileList[0]); for (int i = 1; i < fileList.Count(); i++) { if (!App.OpenedFileList.Contains(fileList[i])) { App.mainWindowViewModel.AddTabItem(fileList[i]); } } } } } public void CreatBlankPDF() { } public void OnNavigatedTo(NavigationContext navigationContext) { var mainVM = navigationContext.Parameters["MainViewModel"] as MainContentViewModel; if (mainVM != null) { mainContentViewModel = mainVM; } } public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } } }