using _20230724_MBJC_upperpc.Common; using _20230724_MBJC_upperpc.Models; using _20230724_MBJC_upperpc.Views; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Runtime.Intrinsics.X86; using System.Text; using System.Threading.Tasks; using System.Windows; namespace _20230724_MBJC_upperpc.ViewModels { public class MainViewModel : NotifyBase { #region 事件 /// /// 主界面标签切换事件 /// public CommandBase NavChangedCommand { get; set; } string Title_Name = ""; //设置当前显示的标题 1 浮标 2 接驳盒 3 系统控制 4 日志记录 #endregion private FrameworkElement _pageContent; public FrameworkElement PageContent { get { return _pageContent; } set { _pageContent = value; this.DoNotify(); } } #region private BeaconModel beacon1; public BeaconModel Beacon1 { get { return beacon1; } set { beacon1 = value; this.DoNotify(); } } private BeaconModel beacon2; public BeaconModel Beacon2 { get { return beacon2; } set { beacon2 = value; this.DoNotify(); } } private BeaconModel beacon3; public BeaconModel Beacon3 { get { return beacon3; } set { beacon3 = value; this.DoNotify(); } } private BeaconModel beacon4; public BeaconModel Beacon4 { get { return beacon4; } set { beacon4 = value; this.DoNotify(); } } private BeaconModel beacon5; public BeaconModel Beacon5 { get { return beacon5; } set { beacon5 = value; this.DoNotify(); } } private BeaconModel beacon6; public BeaconModel Beacon6 { get { return beacon6; } set { beacon6 = value; this.DoNotify(); } } private BeaconModel beacon7; /// /// 基准点1 /// public BeaconModel Beacon7 { get { return beacon7; } set { beacon7 = value; this.DoNotify(); } } private BeaconModel beacon8; /// /// 基准点2 /// public BeaconModel Beacon8 { get { return beacon8; } set { beacon8 = value; this.DoNotify(); } } #endregion private ClientModel client = new ClientModel(); /// /// 连接基阵上位机软件的客户端 /// public ClientModel Client { get { return client; } set { client = value; this.DoNotify(); } } /// /// 连接基阵上位机软件客户端的ip和端口号 /// public SocketInfo socketInfo = new SocketInfo() { IP = tools.GetAppSetting("BasicIP"), Port = int.Parse(tools.GetAppSetting("BasicPort")), }; //基阵客户端连接和断开的操作 public CommandBase ConnectCommand { get; set; } public MainViewModel() { //进行与基阵上位机软件连接 Client.DoConnect(socketInfo); this.NavChangedCommand = new CommandBase(); this.NavChangedCommand.DoExcute = new Action(DoNavChanged); this.NavChangedCommand.DoCanExcute = new Func((o) => true); this.ConnectCommand = new CommandBase(); this.ConnectCommand.DoExcute = new Action(DoConnect); this.ConnectCommand.DoCanExcute = new Func((o) => { return true; }); DoNavChanged("FirstPageView"); } public void DoNavChanged(object obj) { if (Title_Name == obj.ToString()) return; Title_Name = obj.ToString(); if (Title_Name != "FirstPageView" && Title_Name != "BuoyPlatformView") { Title_Name = "AnchorPointView"; } //切换页面之前清理一下内存 tools.ClearMemory(this); ////首先提示加载界面 //Type type = Type.GetType("_20230724_MBJC_upperpc.Views.ProgressView"); //ConstructorInfo cti = type.GetConstructor(System.Type.EmptyTypes); //FrameworkElement page = (FrameworkElement)cti.Invoke(null); //this.PageContent = page; Type type = Type.GetType("_20230724_MBJC_upperpc.Views." + Title_Name); ConstructorInfo cti = type.GetConstructor(System.Type.EmptyTypes); FrameworkElement page = (FrameworkElement)cti.Invoke(null); this.PageContent = page; } public void DoConnect(object o) { if ((bool)o) { Client = new ClientModel(); Client.DoConnect(socketInfo); } else { Client.DisConnect(); } } } }