Просмотр исходного кода

添加线圈操作,寄存器操作,设置界面的初始化,并设置页面跳转

dev1
永攀 张 2 недель назад
Родитель
Сommit
e7a0fba69f
14 измененных файлов: 271 добавлений и 12 удалений
  1. +11
    -2
      ModbusDemo/App.xaml.cs
  2. +5
    -3
      ModbusDemo/MainWindow.xaml
  3. +1
    -7
      ModbusDemo/ModbusDemo.csproj
  4. +21
    -0
      ModbusDemo/Model/MenusInfo.cs
  5. +12
    -0
      ModbusDemo/VIew/CoilUC.xaml
  6. +28
    -0
      ModbusDemo/VIew/CoilUC.xaml.cs
  7. +15
    -0
      ModbusDemo/VIew/RegisterUC.xaml
  8. +28
    -0
      ModbusDemo/VIew/RegisterUC.xaml.cs
  9. +17
    -0
      ModbusDemo/VIew/SettingsUC.xaml
  10. +28
    -0
      ModbusDemo/VIew/SettingsUC.xaml.cs
  11. +17
    -0
      ModbusDemo/VIewModel/CoilUCViewModel.cs
  12. +62
    -0
      ModbusDemo/VIewModel/MainWindowViewModel.cs
  13. +13
    -0
      ModbusDemo/VIewModel/RegisterUCViewModel.cs
  14. +13
    -0
      ModbusDemo/VIewModel/SettingsUCViewModel.cs

+ 11
- 2
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
/// <param name="containerRegistry"></param>
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
//将主页面和主页面的VM结合起来
containerRegistry.RegisterForNavigation<MainWindow, MainWindowViewModel>();
//将线圈操作页面和线圈操作页面的VM结合起来
containerRegistry.RegisterForNavigation<CoilUC, CoilUCViewModel>();
//将寄存器操作页面和寄存器操作页面的VM结合起来
containerRegistry.RegisterForNavigation<RegisterUC, RegisterUCViewModel>();
//将寄存器操作页面和寄存器操作页面的VM结合起来
containerRegistry.RegisterForNavigation<SettingsUC, SettingsUCViewModel>();
}
}



+ 5
- 3
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 @@
<ListBox x:Name="lbMenu" ItemsSource="{Binding LeftMenusList}" ItemContainerStyle="{StaticResource LeftMenuStyle}" SelectionChanged="lbMenu_SelectionChanged">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding NagivgCmm}" CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}}">
<i:InvokeCommandAction Command="{Binding NavigationCmm}" CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}}">
</i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
@@ -78,7 +80,7 @@
</md:ColorZone>

<!-- 区域 -->
<ContentControl prism:RegionManager.RegionName="SrganRegion">
<ContentControl prism:RegionManager.RegionName="ModbusRegion">
</ContentControl>
</DockPanel>
</md:DrawerHost>


+ 1
- 7
ModbusDemo/ModbusDemo.csproj Просмотреть файл

@@ -3,7 +3,7 @@
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<Nullable>disable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
</PropertyGroup>
@@ -13,10 +13,4 @@
<PackageReference Include="Prism.DryIoc" Version="8.1.97" />
</ItemGroup>

<ItemGroup>
<Folder Include="VIew\" />
<Folder Include="VIewModel\" />
<Folder Include="Model\" />
</ItemGroup>

</Project>

+ 21
- 0
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
{
/// <summary>
/// MainWindow左侧的弹出框的列表信息
/// </summary>
public class MenusInfo
{
//图标展示
public string Icon { get; set; }
//列表的名字
public string MenuName { get; set; }
//需要跳转的界面名字
public string ViewName { get; set; }
}
}

+ 12
- 0
ModbusDemo/VIew/CoilUC.xaml Просмотреть файл

@@ -0,0 +1,12 @@
<UserControl x:Class="ModbusDemo.VIew.CoilUC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ModbusDemo.VIew"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<TextBlock Text="Coil" FontSize="60"></TextBlock>
</Grid>
</UserControl>

+ 28
- 0
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
{
/// <summary>
/// CoilUC.xaml 的交互逻辑
/// </summary>
public partial class CoilUC : UserControl
{
public CoilUC()
{
InitializeComponent();
}
}
}

+ 15
- 0
ModbusDemo/VIew/RegisterUC.xaml Просмотреть файл

@@ -0,0 +1,15 @@
<UserControl
x:Class="ModbusDemo.VIew.RegisterUC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ModbusDemo.VIew"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<Grid>
<TextBlock Text="Register" FontSize="30">
</TextBlock>
</Grid>
</UserControl>

+ 28
- 0
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
{
/// <summary>
/// RegisterUC.xaml 的交互逻辑
/// </summary>
public partial class RegisterUC : UserControl
{
public RegisterUC()
{
InitializeComponent();
}
}
}

+ 17
- 0
ModbusDemo/VIew/SettingsUC.xaml Просмотреть файл

@@ -0,0 +1,17 @@
<UserControl
x:Class="ModbusDemo.VIew.SettingsUC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ModbusDemo.VIew"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<StackPanel>
<TextBlock Text="Settings" FontSize="30">
</TextBlock>
<TextBlock Text="Settings" FontSize="30">
</TextBlock>
</StackPanel>
</UserControl>

+ 28
- 0
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
{
/// <summary>
/// SettingsUC.xaml 的交互逻辑
/// </summary>
public partial class SettingsUC : UserControl
{
public SettingsUC()
{
InitializeComponent();
}
}
}

+ 17
- 0
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
{
/// <summary>
/// 这是CoilUC的VM用来支持数据绑定
/// </summary>
public class CoilUCViewModel:BindableBase
{

}
}

+ 62
- 0
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
{
/// <summary>
/// 这个是MainWindow的ViewModel,用来支持数据绑定
/// </summary>
public class MainWindowViewModel : BindableBase
{
//控制页面跳转
private readonly IRegionManager _regionManager;

//定义页面跳转命令
public DelegateCommand<MenusInfo> NavigationCmm { get; set; }
//定义跳转的列表
private List<MenusInfo> _leftMenusList;
public List<MenusInfo> LeftMenusList
{
get { return _leftMenusList; }
set { _leftMenusList = value; }
}
/// <summary>
/// 空参构造,用于xaml的设计时展示
/// </summary>
public MainWindowViewModel()
{

}
/// <summary>
///
/// </summary>
/// <param name="regionManager"></param>
public MainWindowViewModel(IRegionManager regionManager)
{
CreateLeftMenus();
_regionManager = regionManager;

NavigationCmm = new DelegateCommand<MenusInfo>(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" });
}
}
}

+ 13
- 0
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
{
}
}

+ 13
- 0
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
{
}
}

Загрузка…
Отмена
Сохранить