From 7e2e01e3cdb13cd61304495fa8e2f169b695a9e8 Mon Sep 17 00:00:00 2001 From: "David P.G" Date: Fri, 22 Aug 2025 20:46:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BB=8EExcel=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=8F=98=E9=87=8F=E7=9A=84=E5=AF=B9=E8=AF=9D=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DMS.WPF/App.xaml.cs | 3 +++ .../Dialogs/ImportExcelDialogViewModel.cs | 26 +++++++++++-------- DMS.WPF/ViewModels/VariableTableViewModel.cs | 11 ++++---- DMS.WPF/Views/Dialogs/ImportExcelDialog.xaml | 11 +++++--- 4 files changed, 30 insertions(+), 21 deletions(-) diff --git a/DMS.WPF/App.xaml.cs b/DMS.WPF/App.xaml.cs index 5d78841..7caf633 100644 --- a/DMS.WPF/App.xaml.cs +++ b/DMS.WPF/App.xaml.cs @@ -22,6 +22,7 @@ using Microsoft.Extensions.Hosting; using DMS.WPF.Helper; using DMS.WPF.Services; using DMS.WPF.Services.Processors; +using DMS.WPF.ViewModels.Dialogs; using DataProcessingService = DMS.Services.DataProcessingService; using IDataProcessingService = DMS.Services.IDataProcessingService; using LogLevel = Microsoft.Extensions.Logging.LogLevel; @@ -179,6 +180,8 @@ public partial class App : System.Windows.Application //services.AddScoped(); services.AddSingleton(); services.AddSingleton(); + // 注册对话框模型 + services.AddTransient(); // 注册对话框 services.AddSingleton(); //注册View视图 diff --git a/DMS.WPF/ViewModels/Dialogs/ImportExcelDialogViewModel.cs b/DMS.WPF/ViewModels/Dialogs/ImportExcelDialogViewModel.cs index 08cfbf0..ce098fc 100644 --- a/DMS.WPF/ViewModels/Dialogs/ImportExcelDialogViewModel.cs +++ b/DMS.WPF/ViewModels/Dialogs/ImportExcelDialogViewModel.cs @@ -1,4 +1,6 @@ +using System.Collections; using System.Collections.ObjectModel; +using System.Linq; using AutoMapper; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; @@ -11,7 +13,6 @@ namespace DMS.WPF.ViewModels.Dialogs; public partial class ImportExcelDialogViewModel : DialogViewModelBase> { - private readonly IMapper _mapper; private readonly IExcelService _excelService; [ObservableProperty] @@ -19,12 +20,12 @@ public partial class ImportExcelDialogViewModel : DialogViewModelBase _variables = new(); - + [ObservableProperty] + private IList _selectedVariables = new ArrayList(); - public ImportExcelDialogViewModel(IMapper mapper,IExcelService excelService) + public ImportExcelDialogViewModel(IExcelService excelService) { - _mapper = mapper; _excelService = excelService; } @@ -44,20 +45,23 @@ public partial class ImportExcelDialogViewModel : DialogViewModelBase().ToList(); + Close(selected); + } + [RelayCommand] private void CancleButton() { Close(null); } -} \ No newline at end of file +} diff --git a/DMS.WPF/ViewModels/VariableTableViewModel.cs b/DMS.WPF/ViewModels/VariableTableViewModel.cs index e5d1207..906dce7 100644 --- a/DMS.WPF/ViewModels/VariableTableViewModel.cs +++ b/DMS.WPF/ViewModels/VariableTableViewModel.cs @@ -10,6 +10,7 @@ using DMS.WPF.ViewModels.Items; using System.Collections.ObjectModel; using System.ComponentModel; using System.Windows.Data; +using Microsoft.Extensions.DependencyInjection; namespace DMS.WPF.ViewModels; @@ -17,7 +18,6 @@ namespace DMS.WPF.ViewModels; partial class VariableTableViewModel : ViewModelBase, INavigatable { private readonly IMapper _mapper; - private readonly IExcelService _excelService; /// /// 对话服务接口,用于显示各种对话框(如确认、编辑、导入等)。 @@ -91,10 +91,9 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable /// 对话服务接口的实例。 private readonly DataServices _dataServices; - public VariableTableViewModel(IMapper mapper, IExcelService excelService, IDialogService dialogService, DataServices dataServices) + public VariableTableViewModel(IMapper mapper, IDialogService dialogService, DataServices dataServices) { _mapper = mapper; - _excelService = excelService; _dialogService = dialogService; _dataServices = dataServices; IsLoadCompletion = false; // 初始设置为 false,表示未完成加载 @@ -295,10 +294,10 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable [RelayCommand] private async void ImprotFromTiaVarTable() { - ImportExcelDialogViewModel viewModel = new ImportExcelDialogViewModel(_mapper, _excelService); - + ImportExcelDialogViewModel viewModel = App.Current.Services.GetRequiredService(); List improtVariable = await _dialogService.ShowDialogAsync(viewModel); - if (improtVariable == null) return; + + if (improtVariable == null || improtVariable.Count==0) return; diff --git a/DMS.WPF/Views/Dialogs/ImportExcelDialog.xaml b/DMS.WPF/Views/Dialogs/ImportExcelDialog.xaml index aa7c5a0..f9b4979 100644 --- a/DMS.WPF/Views/Dialogs/ImportExcelDialog.xaml +++ b/DMS.WPF/Views/Dialogs/ImportExcelDialog.xaml @@ -6,12 +6,12 @@ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:vmd="clr-namespace:DMS.WPF.ViewModels.Dialogs" + xmlns:helper="clr-namespace:DMS.WPF.Helper" Title="从Excel导入" CloseButtonText="取消" DefaultButton="Primary" PrimaryButtonText="导入全部" SecondaryButtonText="导入选择" - d:DataContext="{d:DesignInstance vmd:ImportExcelDialogViewModel}" mc:Ignorable="d" AllowDrop="True" @@ -20,10 +20,10 @@ - + - + @@ -59,6 +59,9 @@ ItemsSource="{Binding Variables}" AutoGenerateColumns="False" CanUserAddRows="False"> + + +