添加了NLog日志,并且配置了写入数据库,修改了Notification通知不使用依赖注入,而是使用Message的方式

This commit is contained in:
2025-06-23 13:42:02 +08:00
parent 32648ff89f
commit c978b92fff
17 changed files with 291 additions and 69 deletions

View File

@@ -53,6 +53,16 @@
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Switch}" />
</ui:NavigationViewItem.Icon>
</ui:NavigationViewItem>
<ui:NavigationViewItem Tag="Setting" Content="设置">
<ui:NavigationViewItem.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Settings}" />
</ui:NavigationViewItem.Icon>
</ui:NavigationViewItem>
<ui:NavigationViewItem Content="关于">
<ui:NavigationViewItem.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Info}" />
</ui:NavigationViewItem.Icon>
</ui:NavigationViewItem>
</ui:NavigationView.MenuItems>
@@ -65,25 +75,7 @@
</ui:NavigationView.AutoSuggestBox>
<ui:NavigationView.PaneFooter>
<StackPanel
x:Name="FooterStackPanel"
Margin="0"
Orientation="Vertical"
Visibility="Visible">
<ui:NavigationViewItem Content="设置">
<ui:NavigationViewItem.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Settings}" />
</ui:NavigationViewItem.Icon>
</ui:NavigationViewItem>
<ui:NavigationViewItem Content="关于">
<ui:NavigationViewItem.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Info}" />
</ui:NavigationViewItem.Icon>
</ui:NavigationViewItem>
</StackPanel>
</ui:NavigationView.PaneFooter>
<Grid>
<ContentControl Content="{Binding CurrentViewModel}">
@@ -97,6 +89,9 @@
<DataTemplate DataType="{x:Type vm:DataTransformViewModel}">
<local:DataTransformView/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:SettingViewModel}">
<local:SettingView/>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>

View File

@@ -1,6 +1,9 @@
using System.Windows;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Messaging;
using iNKORE.UI.WPF.Modern.Controls;
using Microsoft.Extensions.Logging;
using PMSWPF.Message;
using PMSWPF.ViewModels;
namespace PMSWPF.Views
@@ -10,14 +13,24 @@ namespace PMSWPF.Views
/// </summary>
public partial class MainView : Window
{
private readonly ILogger<MainView> _logger;
public MainView()
public MainView(MainViewModel viewModel, ILogger<MainView> logger)
{
InitializeComponent();
_logger = logger;
InitializeComponent();
this.DataContext=viewModel;
_logger.LogInformation("主界面加载成功");
}
/// <summary>
/// 左边菜单项被点击的事件,切换右边的视图
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
{
NavigationViewItem? item = args.SelectedItem as NavigationViewItem;
@@ -26,15 +39,24 @@ namespace PMSWPF.Views
{
case "Home":
mainViewModel.NavgateTo<HomeViewModel>();
_logger.LogInformation("导航到到主页面");
break;
case "Devices":
mainViewModel.NavgateTo<DevicesViewModel>();
_logger.LogInformation("导航到到设备页面");
break;
case "DataTransform":
mainViewModel.NavgateTo<DataTransformViewModel>();
_logger.LogInformation("导航到到数据转换页面");
break;
case "Setting":
mainViewModel.NavgateTo<SettingViewModel>();
_logger.LogInformation("导航到到设备页面");
break;
default:
mainViewModel.NavgateTo<HomeViewModel>();
_logger.LogInformation("没有设置Tag,默认导航到主页面。");
break;
}

12
Views/SettingView.xaml Normal file
View File

@@ -0,0 +1,12 @@
<UserControl x:Class="PMSWPF.Views.SettingView"
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:PMSWPF.Views"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
</Grid>
</UserControl>

11
Views/SettingView.xaml.cs Normal file
View File

@@ -0,0 +1,11 @@
using System.Windows.Controls;
namespace PMSWPF.Views;
public partial class SettingView : UserControl
{
public SettingView()
{
InitializeComponent();
}
}