76 lines
2.6 KiB
C#
76 lines
2.6 KiB
C#
using System.Windows.Controls;
|
|
using CommunityToolkit.Mvvm.Messaging;
|
|
using ExcelHelper.Message;
|
|
using ExcelHelper.Views.ViewModels;
|
|
|
|
namespace ExcelHelper.Views.Pages
|
|
{
|
|
/// <summary>
|
|
/// ImportExcelPage.xaml 的交互逻辑
|
|
/// </summary>
|
|
public partial class ImportExcelPage : Page, IView, IRecipient<UpdateDataGridColumnsMessage>
|
|
{
|
|
private ImportViewModel ViewModel;
|
|
public ImportExcelPage(ImportViewModel viewModel)
|
|
{
|
|
InitializeComponent();
|
|
this.DataContext = ViewModel = viewModel;
|
|
ViewModel.IsActive = true;
|
|
// Register a message in some module
|
|
WeakReferenceMessenger.Default.Register<UpdateDataGridColumnsMessage>(this, (r, message) =>
|
|
{
|
|
if (message.Value != null)
|
|
{
|
|
ExcelDataPreviewGrid.Columns.Clear();
|
|
foreach (var column in message.Value)
|
|
{
|
|
ExcelDataPreviewGrid.Columns.Add(column);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
private void Grid_DragEnter(object sender, System.Windows.DragEventArgs e)
|
|
{
|
|
if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
|
|
{
|
|
e.Effects = System.Windows.DragDropEffects.Link;
|
|
}
|
|
else
|
|
{
|
|
e.Effects = System.Windows.DragDropEffects.None;
|
|
}
|
|
DropFileMask.Visibility = System.Windows.Visibility.Visible;
|
|
}
|
|
|
|
private void Grid_Drop(object sender, System.Windows.DragEventArgs e)
|
|
{
|
|
DropFileMask.Visibility = System.Windows.Visibility.Collapsed;
|
|
if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
|
|
{
|
|
var files = (string[])e.Data.GetData(System.Windows.DataFormats.FileDrop);
|
|
if (files.Length > 0)
|
|
{
|
|
ViewModel.FileDrop(files);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void Grid_DragLeave(object sender, System.Windows.DragEventArgs e)
|
|
{
|
|
DropFileMask.Visibility = System.Windows.Visibility.Collapsed;
|
|
}
|
|
|
|
void IRecipient<UpdateDataGridColumnsMessage>.Receive(UpdateDataGridColumnsMessage message)
|
|
{
|
|
if (message.Value != null)
|
|
{
|
|
ExcelDataPreviewGrid.Columns.Clear();
|
|
foreach (var column in message.Value)
|
|
{
|
|
ExcelDataPreviewGrid.Columns.Add(column);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|