using DataEntity.Share; using DataRWDAL; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Windows; using System.Windows.Controls; using XCommon.Log; using XHandler.Class.DataEx; using XHandler.Controls; using XHandler.View.MethodProperty; using XImagingXhandler.XDAL; namespace XHandler.View.BacteriaProperty { /// /// CoatingProperty.xaml 的交互逻辑 /// public partial class CoatingProperty : UserControl, IMethodProperty { Labware selectedLabware; public MethodCoating methodCoating { get; set; } public MethodCoating currmethodCoating = null; #region 全局属性变量 string isrun = ""; string status = ""; string name = ""; string label = ""; string labwareText = ""; string labwareValue = ""; string positionText = ""; string positionValue = ""; string armText = ""; string armValue = ""; string headType = ""; private int[] channels = Shared.ChannelsId; string wellarray = ""; string coatingmodeText = ""; string coatingmodeValue = ""; static int mark = 0; int curArmSelectedIndex = -1; #endregion public CoatingProperty() { InitializeComponent(); } public CoatingProperty(MethodEx method) { InitializeComponent(); mark = 0; curArmSelectedIndex = 0; List armList = DataModule.getInstance().GetDeviceArm(); cbArm.ItemsSource = armList; if (armList.Count == 2) //只有一个臂的情况下默认选中该臂 cbArm.SelectedIndex = 1; else cbArm.SelectedIndex = 0; ObservableCollection coatingModeList = DataModule.getInstance().GetCoatingMode(); cbCoatingMode.ItemsSource = coatingModeList; cbCoatingMode.SelectedIndex = 0; List list = new List(); List lattices = DataModule.getInstance().GetLattices(); for (int i = 0; i < Shared.SoftwareInformation.columns; i++) { for (int j = 0; j < Shared.SoftwareInformation.rows; j++) { int tmp = i * Shared.SoftwareInformation.rows + j; Lattice latt = lattices[tmp]; if (latt.is_trash == 1) continue; list.Add(latt.lattice_num); } } list.Insert(0, Properties.Resources.strPleaseSelect); comboboxTablePos.ItemsSource = list; comboboxTablePos.SelectedIndex = 0; methodCoating = new MethodCoating(); methodCoating.name = method.method_name; methodCoating.label = method.method_name; methodCoating.status = (method.isEnabled == true ? "enable" : "disable"); methodCoating.wellarray = ""; methodCoating.strIndex = method.strIndex; DropdownName dpdItem = (DropdownName)cbCoatingMode.SelectedItem; methodCoating.coatingmodeValue = dpdItem.dropdown_id; methodCoating.coatingmodeText = dpdItem.dropdown_name; //methodCoating.coatingmodeValue = cbCoatingMode.SelectedValue.ToString(); this.DataContext = methodCoating; if (Shared.ChannelCount > 1) { tipsChannel.CanEdit = true; } if (method.tag != null) { methodCoating = (MethodCoating)method.tag; currmethodCoating = methodCoating; isrun = methodCoating.isrun; status = methodCoating.status; name = methodCoating.name; label = methodCoating.label; labwareText = methodCoating.labwareText; labwareValue = methodCoating.labwareValue; positionText = methodCoating.positionText; positionValue = methodCoating.positionValue; armText = methodCoating.armText; armValue = methodCoating.armValue; headType = methodCoating.headType; channels = methodCoating.channels; wellarray = methodCoating.wellarray; coatingmodeText = methodCoating.coatingmodeText; coatingmodeValue = methodCoating.coatingmodeValue; } } private void z_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (mark == 0) { } else { if (cbCoatingMode.SelectedIndex < 0) return; DropdownName dpdItem = (DropdownName)cbCoatingMode.SelectedItem; methodCoating.coatingmodeValue = dpdItem.dropdown_id; methodCoating.coatingmodeText = dpdItem.dropdown_name; } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e) { // 臂未选择 if (cbArm.SelectedIndex < 0 || cbArm.SelectedIndex == 0) { tipsChannel.SetTotalChannelCount(0); tipsChannel.SelectedChannels = new List(); tipsChannel.SetSelectedChannels(); tipsChannel_SelectedChangedEvent(null, null); return; } curArmSelectedIndex = cbArm.SelectedIndex; string armName = ((DeviceArm)cbArm.SelectedItem).device_arm_name.ToString(); tipsChannel.SelectedChannels = Shared.ChannelsId.ToList(); tipsChannel.SetTotalChannelCount(Shared.ChannelCount); tipsChannel.SetSelectedChannels(); tipsChannel_SelectedChangedEvent(null, null); DeviceArm arm = cbArm.SelectedItem as DeviceArm; methodCoating.armText = arm.device_arm_name; methodCoating.armValue = arm.device_arm_id.ToString(); methodCoating.headType = arm.head_type; textboxArmHead.Text = arm.head_type.ToString(); } public void SetTableName(string tableName, Labware lb) { if (lb == null) return; if (string.IsNullOrEmpty(lb.labware_id)) return; if (string.IsNullOrEmpty(methodCoating.armValue)) { MessageBox.Show(Properties.Resources.msgPlsSelectArm, "Tips"); return; } selectedLabware = lb; List latticeList = LatticeDB.GetLatticeDataFromdb(Shared.SoftwareInformation.software_device_number, Convert.ToInt32(methodCoating.armValue)); Lattice lattice = latticeList.Find(s => s.lattice_num == tableName); if (lattice == null) { LoggerHelper.InfoLog("Error: Can't find lattice with lattice_num=" + tableName); return; } comboboxTablePos.SelectedItem = tableName; methodCoating.positionText = tableName; methodCoating.positionValue = lattice.lattice_id; methodCoating.labwareText = lb.labware_name; methodCoating.labwareValue = lb.labware_id; } private void comboboxTablePos_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (comboboxTablePos.SelectedItem == null) return; string name = comboboxTablePos.SelectedItem as string; SetTableName(name, selectedLabware); } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e) { try { if (mark == 0) { } else { methodCoating.name = tbxCommandName.Text; } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void tbxWellPositionTips_TextChanged(object sender, TextChangedEventArgs e) { try { if (mark == 0) { } else { methodCoating.wellarray = tbxWellPositionTips.Text; } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void UserControl_Loaded(object sender, RoutedEventArgs e) { mark += 1; try { if (mark > 1) { return; } if (!string.IsNullOrEmpty(armText)) { tbxCommandName.Text = name; cbArm.SelectedValue = armValue; DeviceArm arm = cbArm.SelectedItem as DeviceArm; textboxArmHead.Text = arm.head_type; comboboxTablePos.SelectedItem = positionText; tipsChannel.SelectedChannels = channels.ToList(); tipsChannel_SelectedChangedEvent(null, null); tbxWellPositionTips.Text = wellarray; wellPlate.Selection = wellarray; //wellPlate.SetSelection(wellarray); cbCoatingMode.SelectedValue = coatingmodeValue; if (currmethodCoating != null) { methodCoating = currmethodCoating; } } else { cbArm.SelectedIndex = curArmSelectedIndex; DeviceArm arm = cbArm.SelectedItem as DeviceArm; textboxArmHead.Text = arm.head_type; if (currmethodCoating != null) { methodCoating = currmethodCoating; } } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } #region 可用通道鼠标选择变更事件 /// /// 可用通道鼠标选择变更事件 /// /// /// private void tipsChannel_SelectedChangedEvent(object sender, EventArgs e) { methodCoating.channels = tipsChannel.SelectedChannels.ToArray(); } #endregion } }