diff --git a/ModbusDemo/App.xaml.cs b/ModbusDemo/App.xaml.cs
index 4938d93..ca522b2 100644
--- a/ModbusDemo/App.xaml.cs
+++ b/ModbusDemo/App.xaml.cs
@@ -1,4 +1,6 @@
-using Prism.DryIoc;
+using ModbusDemo.VIew;
+using ModbusDemo.VIewModel;
+using Prism.DryIoc;
using Prism.Ioc;
using System.Configuration;
using System.Data;
@@ -25,7 +27,14 @@ namespace ModbusDemo
///
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
-
+ //将主页面和主页面的VM结合起来
+ containerRegistry.RegisterForNavigation();
+ //将线圈操作页面和线圈操作页面的VM结合起来
+ containerRegistry.RegisterForNavigation();
+ //将寄存器操作页面和寄存器操作页面的VM结合起来
+ containerRegistry.RegisterForNavigation();
+ //将寄存器操作页面和寄存器操作页面的VM结合起来
+ containerRegistry.RegisterForNavigation();
}
}
diff --git a/ModbusDemo/MainWindow.xaml b/ModbusDemo/MainWindow.xaml
index 4ea3813..4e03130 100644
--- a/ModbusDemo/MainWindow.xaml
+++ b/ModbusDemo/MainWindow.xaml
@@ -7,7 +7,9 @@
xmlns:local="clr-namespace:ModbusDemo"
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
- xmlns:prism="http://prismlibrary.com/"
+ xmlns:prism="http://prismlibrary.com/"
+ xmlns:viewmodel="clr-namespace:ModbusDemo.VIewModel"
+ d:DataContext="{d:DesignInstance Type=viewmodel:MainWindowViewModel,IsDesignTimeCreatable=True}"
Title="MainWindow"
Width="1000"
Height="600"
@@ -28,7 +30,7 @@
-
+
@@ -78,7 +80,7 @@
-
+
diff --git a/ModbusDemo/ModbusDemo.csproj b/ModbusDemo/ModbusDemo.csproj
index 6137624..fb832b1 100644
--- a/ModbusDemo/ModbusDemo.csproj
+++ b/ModbusDemo/ModbusDemo.csproj
@@ -3,7 +3,7 @@
WinExe
net8.0-windows
- enable
+ disable
enable
true
@@ -13,10 +13,4 @@
-
-
-
-
-
-
diff --git a/ModbusDemo/Model/MenusInfo.cs b/ModbusDemo/Model/MenusInfo.cs
new file mode 100644
index 0000000..e2a6ab9
--- /dev/null
+++ b/ModbusDemo/Model/MenusInfo.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ModbusDemo.Model
+{
+ ///
+ /// MainWindow左侧的弹出框的列表信息
+ ///
+ public class MenusInfo
+ {
+ //图标展示
+ public string Icon { get; set; }
+ //列表的名字
+ public string MenuName { get; set; }
+ //需要跳转的界面名字
+ public string ViewName { get; set; }
+ }
+}
diff --git a/ModbusDemo/VIew/CoilUC.xaml b/ModbusDemo/VIew/CoilUC.xaml
new file mode 100644
index 0000000..30ab690
--- /dev/null
+++ b/ModbusDemo/VIew/CoilUC.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/ModbusDemo/VIew/CoilUC.xaml.cs b/ModbusDemo/VIew/CoilUC.xaml.cs
new file mode 100644
index 0000000..c27df68
--- /dev/null
+++ b/ModbusDemo/VIew/CoilUC.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ModbusDemo.VIew
+{
+ ///
+ /// CoilUC.xaml 的交互逻辑
+ ///
+ public partial class CoilUC : UserControl
+ {
+ public CoilUC()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ModbusDemo/VIew/RegisterUC.xaml b/ModbusDemo/VIew/RegisterUC.xaml
new file mode 100644
index 0000000..b0f47d4
--- /dev/null
+++ b/ModbusDemo/VIew/RegisterUC.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/ModbusDemo/VIew/RegisterUC.xaml.cs b/ModbusDemo/VIew/RegisterUC.xaml.cs
new file mode 100644
index 0000000..5740e6f
--- /dev/null
+++ b/ModbusDemo/VIew/RegisterUC.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ModbusDemo.VIew
+{
+ ///
+ /// RegisterUC.xaml 的交互逻辑
+ ///
+ public partial class RegisterUC : UserControl
+ {
+ public RegisterUC()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ModbusDemo/VIew/SettingsUC.xaml b/ModbusDemo/VIew/SettingsUC.xaml
new file mode 100644
index 0000000..89510e3
--- /dev/null
+++ b/ModbusDemo/VIew/SettingsUC.xaml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/ModbusDemo/VIew/SettingsUC.xaml.cs b/ModbusDemo/VIew/SettingsUC.xaml.cs
new file mode 100644
index 0000000..2b8692d
--- /dev/null
+++ b/ModbusDemo/VIew/SettingsUC.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ModbusDemo.VIew
+{
+ ///
+ /// SettingsUC.xaml 的交互逻辑
+ ///
+ public partial class SettingsUC : UserControl
+ {
+ public SettingsUC()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ModbusDemo/VIewModel/CoilUCViewModel.cs b/ModbusDemo/VIewModel/CoilUCViewModel.cs
new file mode 100644
index 0000000..c5c3d9e
--- /dev/null
+++ b/ModbusDemo/VIewModel/CoilUCViewModel.cs
@@ -0,0 +1,17 @@
+using Prism.Mvvm;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ModbusDemo.VIewModel
+{
+ ///
+ /// 这是CoilUC的VM用来支持数据绑定
+ ///
+ public class CoilUCViewModel:BindableBase
+ {
+
+ }
+}
diff --git a/ModbusDemo/VIewModel/MainWindowViewModel.cs b/ModbusDemo/VIewModel/MainWindowViewModel.cs
new file mode 100644
index 0000000..424dabf
--- /dev/null
+++ b/ModbusDemo/VIewModel/MainWindowViewModel.cs
@@ -0,0 +1,62 @@
+using ModbusDemo.Model;
+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;
+
+namespace ModbusDemo.VIewModel
+{
+ ///
+ /// 这个是MainWindow的ViewModel,用来支持数据绑定
+ ///
+ public class MainWindowViewModel : BindableBase
+ {
+ //控制页面跳转
+ private readonly IRegionManager _regionManager;
+
+ //定义页面跳转命令
+ public DelegateCommand NavigationCmm { get; set; }
+ //定义跳转的列表
+ private List _leftMenusList;
+ public List LeftMenusList
+ {
+ get { return _leftMenusList; }
+ set { _leftMenusList = value; }
+ }
+ ///
+ /// 空参构造,用于xaml的设计时展示
+ ///
+ public MainWindowViewModel()
+ {
+
+ }
+ ///
+ ///
+ ///
+ ///
+ public MainWindowViewModel(IRegionManager regionManager)
+ {
+ CreateLeftMenus();
+ _regionManager = regionManager;
+
+ NavigationCmm = new DelegateCommand(Navigation);
+ }
+
+ private void Navigation(MenusInfo info)
+ {
+ _regionManager.Regions["ModbusRegion"].RequestNavigate(info.ViewName);
+ }
+
+ private void CreateLeftMenus()
+ {
+ LeftMenusList = new();
+ LeftMenusList.Add(new MenusInfo() { Icon = "AllInclusive", MenuName = "线圈操作", ViewName = "CoilUC" });
+ LeftMenusList.Add(new MenusInfo() { Icon = "BlurCircular", MenuName = "寄存器操作", ViewName = "RegisterUC" });
+ LeftMenusList.Add(new MenusInfo() { Icon = "Settings", MenuName = "串口设置", ViewName = "SettingsUC" });
+ }
+ }
+}
diff --git a/ModbusDemo/VIewModel/RegisterUCViewModel.cs b/ModbusDemo/VIewModel/RegisterUCViewModel.cs
new file mode 100644
index 0000000..2a5747f
--- /dev/null
+++ b/ModbusDemo/VIewModel/RegisterUCViewModel.cs
@@ -0,0 +1,13 @@
+using Prism.Mvvm;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ModbusDemo.VIewModel
+{
+ class RegisterUCViewModel:BindableBase
+ {
+ }
+}
diff --git a/ModbusDemo/VIewModel/SettingsUCViewModel.cs b/ModbusDemo/VIewModel/SettingsUCViewModel.cs
new file mode 100644
index 0000000..0b4f54e
--- /dev/null
+++ b/ModbusDemo/VIewModel/SettingsUCViewModel.cs
@@ -0,0 +1,13 @@
+using Prism.Mvvm;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ModbusDemo.VIewModel
+{
+ class SettingsUCViewModel:BindableBase
+ {
+ }
+}