20230201_145_upperpc/InSituLaboratory/ViewModels/Pages/ViewModelBase.cs

201 lines
7.3 KiB
C#
Raw Normal View History

2024-03-11 05:12:02 +00:00
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;
2024-05-10 10:13:30 +00:00
using System.Windows;
using System.Windows.Media;
2024-03-11 05:12:02 +00:00
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; }
2024-03-15 02:27:50 +00:00
public string PrimaryKey { get; set; }
2024-03-11 05:12:02 +00:00
2024-05-10 10:13:30 +00:00
#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
2024-03-11 05:12:02 +00:00
public DelegateCommand CloseCommand { get; set; }
public DelegateCommand RefreshCommand { get; set; }
public DelegateCommand<object> ModifyCommand { get; set; }
public DelegateCommand<object> DeleteCommand { get; set; }
2024-05-10 10:13:30 +00:00
public DelegateCommand DownloadCommand { get; set; }
public DelegateCommand<object> ConnectionCommand { get; set; }
2024-03-11 05:12:02 +00:00
2024-04-09 08:17:44 +00:00
2024-04-16 09:58:37 +00:00
#region 1-5 /
2024-04-09 08:17:44 +00:00
public DelegateCommand RefreshS1Command { get; set; }
2024-04-16 09:58:37 +00:00
public DelegateCommand SendS1Command { get; set; }
2024-04-09 08:17:44 +00:00
public DelegateCommand<object> ModifyS1Command { get; set; }
public DelegateCommand<object> DeleteS1Command { get; set; }
public DelegateCommand RefreshS2Command { get; set; }
2024-04-16 09:58:37 +00:00
public DelegateCommand SendS2Command { get; set; }
2024-04-09 08:17:44 +00:00
public DelegateCommand<object> ModifyS2Command { get; set; }
public DelegateCommand<object> DeleteS2Command { get; set; }
public DelegateCommand RefreshS3Command { get; set; }
2024-04-16 09:58:37 +00:00
public DelegateCommand SendS3Command { get; set; }
2024-04-09 08:17:44 +00:00
public DelegateCommand<object> ModifyS3Command { get; set; }
public DelegateCommand<object> DeleteS3Command { get; set; }
public DelegateCommand RefreshS4Command { get; set; }
2024-04-16 09:58:37 +00:00
public DelegateCommand SendS4Command { get; set; }
2024-04-09 08:17:44 +00:00
public DelegateCommand<object> ModifyS4Command { get; set; }
public DelegateCommand<object> DeleteS4Command { get; set; }
public DelegateCommand RefreshS5Command { get; set; }
2024-04-16 09:58:37 +00:00
public DelegateCommand SendS5Command { get; set; }
2024-04-09 08:17:44 +00:00
public DelegateCommand<object> ModifyS5Command { get; set; }
public DelegateCommand<object> DeleteS5Command { get; set; }
#endregion
2024-03-11 05:12:02 +00:00
IRegionManager _regionManager;
public ViewModelBase(IRegionManager regionManager)
{
_regionManager = regionManager;
CloseCommand = new DelegateCommand(DoClose);
RefreshCommand = new DelegateCommand(Refresh);
ModifyCommand = new DelegateCommand<object>(DoModify);
DeleteCommand = new DelegateCommand<object>(DoDelete);
2024-05-10 10:13:30 +00:00
DownloadCommand = new DelegateCommand(DoDownload);
ConnectionCommand = new DelegateCommand<object>(DoConnection);
2024-04-09 08:17:44 +00:00
2024-04-16 09:58:37 +00:00
#region 1-5 /
2024-04-09 08:17:44 +00:00
RefreshS1Command = new DelegateCommand(RefreshS1);
2024-04-16 09:58:37 +00:00
SendS1Command = new DelegateCommand(SendS1);
2024-04-09 08:17:44 +00:00
ModifyS1Command = new DelegateCommand<object>(DoModifyS1);
DeleteS1Command = new DelegateCommand<object>(DoDeleteS1);
RefreshS2Command = new DelegateCommand(RefreshS2);
2024-04-16 09:58:37 +00:00
SendS2Command = new DelegateCommand(SendS2);
2024-04-09 08:17:44 +00:00
ModifyS2Command = new DelegateCommand<object>(DoModifyS2);
DeleteS2Command = new DelegateCommand<object>(DoDeleteS2);
RefreshS3Command = new DelegateCommand(RefreshS3);
2024-04-16 09:58:37 +00:00
SendS3Command = new DelegateCommand(SendS3);
2024-04-09 08:17:44 +00:00
ModifyS3Command = new DelegateCommand<object>(DoModifyS3);
DeleteS3Command = new DelegateCommand<object>(DoDeleteS3);
RefreshS4Command = new DelegateCommand(RefreshS4);
2024-04-16 09:58:37 +00:00
SendS4Command = new DelegateCommand(SendS4);
2024-04-09 08:17:44 +00:00
ModifyS4Command = new DelegateCommand<object>(DoModifyS4);
DeleteS4Command = new DelegateCommand<object>(DoDeleteS4);
RefreshS5Command = new DelegateCommand(RefreshS5);
2024-04-16 09:58:37 +00:00
SendS5Command = new DelegateCommand(SendS5);
2024-04-09 08:17:44 +00:00
ModifyS5Command = new DelegateCommand<object>(DoModifyS5);
DeleteS5Command = new DelegateCommand<object>(DoDeleteS5);
#endregion
2024-03-11 05:12:02 +00:00
}
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) { }
2024-05-10 10:13:30 +00:00
public virtual void DoDownload() { }
public virtual void DoConnection(object model) { }
2024-03-11 05:12:02 +00:00
private string PageName { get; set; }
2024-04-09 08:17:44 +00:00
2024-04-16 09:58:37 +00:00
#region 1-5 /
2024-04-09 08:17:44 +00:00
public virtual void RefreshS1() { }
2024-04-16 09:58:37 +00:00
public virtual void SendS1() { }
2024-04-09 08:17:44 +00:00
public virtual void DoModifyS1(object model) { }
public virtual void DoDeleteS1(object model) { }
public virtual void RefreshS2() { }
2024-04-16 09:58:37 +00:00
public virtual void SendS2() { }
2024-04-09 08:17:44 +00:00
public virtual void DoModifyS2(object model) { }
public virtual void DoDeleteS2(object model) { }
public virtual void RefreshS3() { }
2024-04-16 09:58:37 +00:00
public virtual void SendS3() { }
2024-04-09 08:17:44 +00:00
public virtual void DoModifyS3(object model) { }
public virtual void DoDeleteS3(object model) { }
public virtual void RefreshS4() { }
2024-04-16 09:58:37 +00:00
public virtual void SendS4() { }
2024-04-09 08:17:44 +00:00
public virtual void DoModifyS4(object model) { }
public virtual void DoDeleteS4(object model) { }
public virtual void RefreshS5() { }
2024-04-16 09:58:37 +00:00
public virtual void SendS5() { }
2024-04-09 08:17:44 +00:00
public virtual void DoModifyS5(object model) { }
public virtual void DoDeleteS5(object model) { }
#endregion
2024-03-11 05:12:02 +00:00
public void OnNavigatedTo(NavigationContext navigationContext)
{
PageName = navigationContext.Uri.ToString();
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
return true;
}
2024-05-10 10:13:30 +00:00
public void OnNavigatedFrom(NavigationContext navigationContext) { }
2024-03-11 05:12:02 +00:00
}
}