using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using XHandler.Class; using XHandler.Class.DataEx; using XHandler.View.MethodProperty; using XImagingXhandler.XDAL; namespace XHandler.View.Consumables { /// /// NewConsumable.xaml 的交互逻辑 /// public partial class NewConsumable : UserControl { #region custom event public event EventHandler closeEvent; /// /// 确定 /// public static readonly RoutedEvent OKRoutedEvent = EventManager.RegisterRoutedEvent("OKEvent", RoutingStrategy.Bubble, typeof(CustomEvent.CustomRoutedEventHandler), typeof(NewConsumable)); [Description("OKEvent")] public event CustomEvent.CustomRoutedEventHandler OKEvent { add { this.AddHandler(OKRoutedEvent, value); } remove { this.RemoveHandler(OKRoutedEvent, value); } } private void RaiseOKEvent(Labware l) { CustomRoutedEventArgs arg = new CustomRoutedEventArgs(OKRoutedEvent, l); this.RaiseEvent(arg); } #endregion ObservableCollection labwareList; public NewConsumable() { InitializeComponent(); ObservableCollection labwareTypeList = DataModule.getInstance().GetLabwareTypes(); cbConsumableType.ItemsSource = labwareTypeList; labwareList = DataModule.getInstance().GetLabwares(); } private void UserControl_Loaded(object sender, RoutedEventArgs e) { cbConsumableType.SelectedIndex = 0; } private void Button_Click(object sender, RoutedEventArgs e) { if (EventResponseController.Instance.CanExecute() == false) return; closeEvent?.Invoke(this, EventArgs.Empty); } private void btnOK_Click(object sender, RoutedEventArgs e) { if (EventResponseController.Instance.CanExecute() == false) return; if (string.IsNullOrEmpty(textboxName.Text.Trim())) { textboxName.Text = ""; textboxName.BorderThickness = new Thickness(1, 1, 1, 1); return; } else { textboxName.BorderThickness = new Thickness(0); } if (cbConsumableType.SelectedValue.ToString() == "-1") { cbConsumableType.BorderThickness = new Thickness(1, 1, 1, 1); return; } else { cbConsumableType.BorderThickness = new Thickness(0); } //查找重名 int count = labwareList.Where(s => s.labware_name == textboxName.Text.Trim()).Count(); if (count > 0) { textboxName.Watermark = "\"" + textboxName.Text + "\"" + Properties.Resources.strConsumableNameExist; textboxName.Text = ""; textboxName.BorderThickness = new Thickness(1, 1, 1, 1); return; } LabwareType labwareType = cbConsumableType.SelectedItem as LabwareType; Labware labware = new Labware(); labware.labware_name = textboxName.Text.Trim(); labware.labware_type_id = labwareType.labwaretype_id; labware.labware_type = labwareType.labwaretype_name; if (labwareType.labwaretype_id == "5") { labware.labware_color_top = "255,255,255"; labware.labware_color_line = "128,128,128"; } RaiseOKEvent(labware); } private void textboxName_LostFocus(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(textboxName.Text.Trim())) { textboxName.Text = ""; textboxName.BorderThickness = new Thickness(1, 1, 1, 1); } else { textboxName.Watermark = Properties.Resources.strPleaseInput; textboxName.BorderThickness = new Thickness(0, 0, 0, 0); } } } }