using Prism.Commands; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; namespace InSituLaboratory.ViewModels.Pages { public class ViewModelBase : BindableBase, INavigationAware { public string PageTitle { get; set; } = "页面标题"; public bool IsCanClose { get; set; } = true; public string SearchKey { get; set; } public string PrimaryKey { get; set; } #region 数据下载实体类 private bool downloadDataBtnIsEnabled = true; public bool DownloadDataBtnIsEnabled { get { return downloadDataBtnIsEnabled; } set { SetProperty(ref downloadDataBtnIsEnabled, value); } } private Visibility downloadDataMsgVisibility = Visibility.Visible; public Visibility DownloadDataMsgVisibility { get { return downloadDataMsgVisibility; } set { SetProperty(ref downloadDataMsgVisibility, value); } } private string downloadDataMsg; public string DownloadDataMsg { get { return downloadDataMsg; } set { SetProperty(ref downloadDataMsg, value); } } private Brush downloadDataMsgForeground; public Brush DownloadDataMsgForeground { get { return downloadDataMsgForeground; } set { SetProperty(ref downloadDataMsgForeground, value); } } #endregion public DelegateCommand CloseCommand { get; set; } public DelegateCommand RefreshCommand { get; set; } public DelegateCommand ModifyCommand { get; set; } public DelegateCommand DeleteCommand { get; set; } public DelegateCommand DownloadCommand { get; set; } public DelegateCommand ConnectionCommand { get; set; } public DelegateCommand ReductionCommand { get; set; } //一键还原 public DelegateCommand StartCommand { get; set; }//一键启动 public DelegateCommand SynchronizationCommand { get; set; }//时间同步 #region 时序1-5 刷新 新增/编辑 删除 下发 启动 暂停 public DelegateCommand RefreshS1Command { get; set; } public DelegateCommand SendS1Command { get; set; } public DelegateCommand ModifyS1Command { get; set; } public DelegateCommand DeleteS1Command { get; set; } public DelegateCommand BeginS1Command { get; set; } public DelegateCommand SuspendS1Command { get; set; } public DelegateCommand RefreshS2Command { get; set; } public DelegateCommand SendS2Command { get; set; } public DelegateCommand ModifyS2Command { get; set; } public DelegateCommand DeleteS2Command { get; set; } public DelegateCommand BeginS2Command { get; set; } public DelegateCommand SuspendS2Command { get; set; } public DelegateCommand RefreshS3Command { get; set; } public DelegateCommand SendS3Command { get; set; } public DelegateCommand ModifyS3Command { get; set; } public DelegateCommand DeleteS3Command { get; set; } public DelegateCommand BeginS3Command { get; set; } public DelegateCommand SuspendS3Command { get; set; } public DelegateCommand RefreshS4Command { get; set; } public DelegateCommand SendS4Command { get; set; } public DelegateCommand ModifyS4Command { get; set; } public DelegateCommand DeleteS4Command { get; set; } public DelegateCommand BeginS4Command { get; set; } public DelegateCommand SuspendS4Command { get; set; } public DelegateCommand RefreshS5Command { get; set; } public DelegateCommand SendS5Command { get; set; } public DelegateCommand ModifyS5Command { get; set; } public DelegateCommand DeleteS5Command { get; set; } public DelegateCommand BeginS5Command { get; set; } public DelegateCommand SuspendS5Command { get; set; } #endregion IRegionManager _regionManager; public ViewModelBase(IRegionManager regionManager) { _regionManager = regionManager; CloseCommand = new DelegateCommand(DoClose); RefreshCommand = new DelegateCommand(Refresh); ModifyCommand = new DelegateCommand(DoModify); DeleteCommand = new DelegateCommand(DoDelete); DownloadCommand = new DelegateCommand(DoDownload); ConnectionCommand = new DelegateCommand(DoConnection); ReductionCommand = new DelegateCommand(DoReduction); StartCommand = new DelegateCommand(DoStart); SynchronizationCommand = new DelegateCommand(DoSynchronization); #region 时序1-5 刷新 新增/编辑 删除 下发 启动 暂停 RefreshS1Command = new DelegateCommand(RefreshS1); SendS1Command = new DelegateCommand(SendS1); ModifyS1Command = new DelegateCommand(DoModifyS1); DeleteS1Command = new DelegateCommand(DoDeleteS1); BeginS1Command = new DelegateCommand(BeginS1); SuspendS1Command = new DelegateCommand(SuspendS1); RefreshS2Command = new DelegateCommand(RefreshS2); SendS2Command = new DelegateCommand(SendS2); ModifyS2Command = new DelegateCommand(DoModifyS2); DeleteS2Command = new DelegateCommand(DoDeleteS2); BeginS2Command = new DelegateCommand(BeginS2); SuspendS2Command = new DelegateCommand(SuspendS2); RefreshS3Command = new DelegateCommand(RefreshS3); SendS3Command = new DelegateCommand(SendS3); ModifyS3Command = new DelegateCommand(DoModifyS3); DeleteS3Command = new DelegateCommand(DoDeleteS3); BeginS3Command = new DelegateCommand(BeginS3); SuspendS3Command = new DelegateCommand(SuspendS3); RefreshS4Command = new DelegateCommand(RefreshS4); SendS4Command = new DelegateCommand(SendS4); ModifyS4Command = new DelegateCommand(DoModifyS4); DeleteS4Command = new DelegateCommand(DoDeleteS4); BeginS4Command = new DelegateCommand(BeginS4); SuspendS4Command = new DelegateCommand(SuspendS4); RefreshS5Command = new DelegateCommand(RefreshS5); SendS5Command = new DelegateCommand(SendS5); ModifyS5Command = new DelegateCommand(DoModifyS5); DeleteS5Command = new DelegateCommand(DoDeleteS5); BeginS5Command = new DelegateCommand(BeginS5); SuspendS5Command = new DelegateCommand(SuspendS5); #endregion } private void DoClose() { //拿到主区域,从区域里移除对应的页面,根据页面的名称 var region = _regionManager.Regions["MainRegion"]; var view = region.Views.Where(v => v.GetType().Name == PageName).FirstOrDefault(); if (view != null) { region.Remove(view); } } public virtual void Refresh() { } public virtual void DoModify(object model) { } public virtual void DoDelete(object model) { } public virtual void DoDownload() { } public virtual void DoConnection(object model) { } public virtual void DoReduction() { } public virtual void DoStart() { } public virtual void DoSynchronization() { } private string PageName { get; set; } #region 时序1-5 刷新 新增/编辑 删除 下发 启动 暂停 public virtual void RefreshS1() { } public virtual void SendS1() { } public virtual void DoModifyS1(object model) { } public virtual void DoDeleteS1(object model) { } public virtual void BeginS1() { } public virtual void SuspendS1() { } public virtual void RefreshS2() { } public virtual void SendS2() { } public virtual void DoModifyS2(object model) { } public virtual void DoDeleteS2(object model) { } public virtual void BeginS2() { } public virtual void SuspendS2() { } public virtual void RefreshS3() { } public virtual void SendS3() { } public virtual void DoModifyS3(object model) { } public virtual void DoDeleteS3(object model) { } public virtual void BeginS3() { } public virtual void SuspendS3() { } public virtual void RefreshS4() { } public virtual void SendS4() { } public virtual void DoModifyS4(object model) { } public virtual void DoDeleteS4(object model) { } public virtual void BeginS4() { } public virtual void SuspendS4() { } public virtual void RefreshS5() { } public virtual void SendS5() { } public virtual void DoModifyS5(object model) { } public virtual void DoDeleteS5(object model) { } public virtual void BeginS5() { } public virtual void SuspendS5() { } #endregion public void OnNavigatedTo(NavigationContext navigationContext) { PageName = navigationContext.Uri.ToString(); } public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } } }