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);
}
}
}
}