using System.Windows; using System.Windows.Controls; using CommunityToolkit.Mvvm.Messaging; using iNKORE.UI.WPF.Modern.Controls; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using PMSWPF.Message; using PMSWPF.Models; using PMSWPF.ViewModels; namespace PMSWPF.Views; /// /// MainView.xaml 的交互逻辑 /// public partial class MainView : Window { private readonly ILogger _logger; private MainViewModel _viewModel; public MainView(MainViewModel viewModel, ILogger logger) { InitializeComponent(); _viewModel = viewModel; _logger = logger; DataContext = viewModel; _logger.LogInformation("主界面加载成功"); } /// /// 左边菜单项被点击的事件,切换右边的视图 /// /// /// private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args) { var item = args.SelectedItem as NavigationViewItem; ViewModelBase navgateVM = App.Current.Services.GetRequiredService(); switch (item.Tag) { case "Home": // mainViewModel.NavgateTo(); navgateVM = App.Current.Services.GetRequiredService(); _logger.LogInformation("导航到到主页面"); break; case "Devices": navgateVM = App.Current.Services.GetRequiredService(); // mainViewModel.NavgateTo(); _logger.LogInformation("导航到到设备页面"); break; case "DataTransform": navgateVM = App.Current.Services.GetRequiredService(); // mainViewModel.NavgateTo(); _logger.LogInformation("导航到到数据转换页面"); break; case "Setting": // mainViewModel.NavgateTo(); navgateVM = App.Current.Services.GetRequiredService(); _logger.LogInformation("导航到到设备页面"); break; } var nm = new NavgatorMessage(navgateVM); WeakReferenceMessenger.Default.Send(nm); } private async void MainView_OnLoaded(object sender, RoutedEventArgs e) { _viewModel.OnLoaded(); } private void NavigationView_OnItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args) { ViewModelBase navgateVM = App.Current.Services.GetRequiredService(); Object parameter =null; switch (args.InvokedItem) { case "主页": // mainViewModel.NavgateTo(); navgateVM = App.Current.Services.GetRequiredService(); _logger.LogInformation("导航到到主页面"); break; case "设备": navgateVM = App.Current.Services.GetRequiredService(); // mainViewModel.NavgateTo(); _logger.LogInformation("导航到到设备页面"); break; case "数据转换": navgateVM = App.Current.Services.GetRequiredService(); // mainViewModel.NavgateTo(); _logger.LogInformation("导航到到数据转换页面"); break; case "设置": // mainViewModel.NavgateTo(); navgateVM = App.Current.Services.GetRequiredService(); _logger.LogInformation("导航到到设备页面"); break; } var nm = new NavgatorMessage(navgateVM,parameter); WeakReferenceMessenger.Default.Send(nm); } private void NavigationView_OnSelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args) { var selectMenu= args.SelectedItem as MenuBean; } }