ExcelHelper/Views/Pages/ImportExcelPage.xaml.cs

80 lines
2.7 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;
//GenerateDataGridColumns();
//Messenger
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.FileDropCommand.CanExecute(files);
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);
}
}
}
}
}