添加到从Excel导入的对话框
This commit is contained in:
54
Views/Dialogs/ImportExcelDialog.xaml
Normal file
54
Views/Dialogs/ImportExcelDialog.xaml
Normal file
@@ -0,0 +1,54 @@
|
||||
<ui:ContentDialog x:Class="PMSWPF.Views.Dialogs.ImportExcelDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
|
||||
xmlns:vmd="clr-namespace:PMSWPF.ViewModels.Dialogs"
|
||||
Title="从Excel导入"
|
||||
CloseButtonText="取消"
|
||||
DefaultButton="Primary"
|
||||
PrimaryButtonText="导入"
|
||||
d:DataContext="{d:DesignInstance vmd:ImportExcelDialogViewModel}"
|
||||
mc:Ignorable="d"
|
||||
AllowDrop="True"
|
||||
DragEnter="Dialog_DragEnter"
|
||||
Drop="Dialog_Drop">
|
||||
|
||||
<Grid Margin="10">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<StackPanel Grid.Row="0">
|
||||
<TextBlock HorizontalAlignment="Center"
|
||||
Text="拖放Excel文件到此处或选择文件" />
|
||||
<Grid Margin="0,10,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="{Binding FilePath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Button Grid.Column="1"
|
||||
Margin="5,0,0,0"
|
||||
Click="SelectFile_Click"
|
||||
Content="选择文件" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<DataGrid Grid.Row="1"
|
||||
Margin="0,10,0,0"
|
||||
ItemsSource="{Binding VariableData}"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserAddRows="False">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="名称" Binding="{Binding Name}" />
|
||||
<DataGridTextColumn Header="数据类型" Binding="{Binding DataType}" />
|
||||
<DataGridTextColumn Header="S7地址" Binding="{Binding S7Address}" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</ui:ContentDialog>
|
||||
67
Views/Dialogs/ImportExcelDialog.xaml.cs
Normal file
67
Views/Dialogs/ImportExcelDialog.xaml.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using Microsoft.Win32;
|
||||
using PMSWPF.ViewModels.Dialogs;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using iNKORE.UI.WPF.Modern.Controls;
|
||||
|
||||
namespace PMSWPF.Views.Dialogs;
|
||||
|
||||
public partial class ImportExcelDialog : ContentDialog
|
||||
{
|
||||
public ImportExcelDialog(ImportExcelDialogViewModel viewModel)
|
||||
{
|
||||
InitializeComponent();
|
||||
DataContext = viewModel;
|
||||
}
|
||||
|
||||
private void Dialog_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||
{
|
||||
e.Effects = DragDropEffects.Copy;
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Effects = DragDropEffects.None;
|
||||
}
|
||||
}
|
||||
|
||||
private void Dialog_Drop(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||
{
|
||||
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
|
||||
if (files.Length > 0)
|
||||
{
|
||||
string extension = Path.GetExtension(files[0]);
|
||||
if (extension.Equals(".xls", StringComparison.OrdinalIgnoreCase) ||
|
||||
extension.Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
if (DataContext is ImportExcelDialogViewModel viewModel)
|
||||
{
|
||||
viewModel.FilePath = files[0];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// MessageBox.Show("Please drop a valid Excel file (.xls or .xlsx).", "Invalid File Type", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SelectFile_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var openFileDialog = new OpenFileDialog
|
||||
{
|
||||
Filter = "Excel Files (*.xlsx)|*.xlsx|All files (*.*)|*.*"
|
||||
};
|
||||
if (openFileDialog.ShowDialog() == true)
|
||||
{
|
||||
if (DataContext is ImportExcelDialogViewModel viewModel)
|
||||
{
|
||||
viewModel.FilePath = openFileDialog.FileName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user