using HMI.UI.Util; using HMI.Util; using Microsoft.Win32; using Panuon.WPF.UI; using PLCHelper.Entity; using System.Collections.ObjectModel; using System.ComponentModel; using System.Windows.Controls; namespace Plugin.CurrentSensorControl { /// /// ModalWindow.xaml 的交互逻辑 /// public partial class BurnInSettingModal : WindowX { public BurnInSettingModal() { this.DataContext = this; InitializeComponent(); } private ObservableCollection datasource; public ObservableCollection Datasource { get => datasource; set { Set(ref datasource, value); } } private bool _isProcessing; protected override void OnClosing(CancelEventArgs e) { //Press Continue Button if (DialogResult == true) { if (_isProcessing) { e.Cancel = true; return; } var okButton = WindowXModalDialog.GetOKButton(this); try { _isProcessing = true; ButtonHelper.SetIsPending(okButton, true); } catch (Exception ex) { ToastHelper.Error(this, $"Error!{ex.Message}"); e.Cancel = true; return; } finally { _isProcessing = false; ButtonHelper.SetIsPending(okButton, false); } } base.OnClosing(e); } private bool ValidateName(object value, out string err) { err = null; //string group = TbGroup.Text; //var temp = Datasource.FirstOrDefault(d => d.Group == group && d.Name == value.ToString()); //if (temp != null && temp != Data) //{ // err = this.lang("App.MustBeUnique", $"{this.lang("doc.group")},{this.lang("doc.name")}"); // return false; //} return true; } private bool ValidateAddress(object value, out string err) { err = null; //string group = TbGroup.Text; //var temp = Datasource.FirstOrDefault(d => d.Address == value.ToString()); //if (temp != null && temp != Data) //{ // err = this.lang("App.MustBeUnique", this.lang("doc.Address")); // return false; //} return true; } public bool? Open( ObservableCollection datasource) { this.Datasource = datasource; return this.ShowDialog(); } private void DoExport() { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Excel 文件 (*.xls)|*.xls"; if (sfd.ShowDialog() == true) { ExcelHelper.ExportExcel(sfd.FileName, Datasource); } } private void DoImport() { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Excel 文件 (*.xls)|*.xls"; if (ofd.ShowDialog() == true) { try { Datasource = new ObservableCollection(ExcelHelper.ReadFromExcel(ofd.FileName)); } catch (Exception ex) { ControlPage.Logger.Error("Import Error.", ex); ToastHelper.Error(ex.Message); } } } private void Button_Click(object sender, System.Windows.RoutedEventArgs e) { var btn = sender as Button; switch (btn.Name) { case "exportBtn": DoExport(); break; case "importBtn": DoImport(); break; default: break; } } } }