using DataEntity.Rack; using DataEntity.Share; using DataRWDAL; using DataRWDAL.Rack; using HxEnum; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Controls; using XCommon.Log; using XCore; using XHandler.Class; using XHandler.Class.DataEx; using XHandler.View.Dialog; using XImagingXhandler.XDAL; using XHandler.View.Consumables; using System.Linq; using XHandler.Controls; using XCommon; namespace XHandler.View.MethodProperty { /// /// 夹爪转移 /// public partial class GripTransportProperty : UserControl, IMethodProperty,IConsumableObserver { AspirateBll aspirateBll = new AspirateBll(); GripTransportBll gripTransportBll = new GripTransportBll(); //List lattices = new List(); int curArmSelectedIndex = -1; int curSourceSelectedIndex = -1; int curDestinationSelectedIndex = -1; int curGripPositionSelectedIndex = -1; public MethodGripTransport methodGripTransport { get; set; } public MethodGripTransport currmethodGripTransport = null; public MethodEx method = null; #region 全局属性变量 string isrun = ""; string status = ""; string name = ""; string label = ""; string armText = ""; string armValue = ""; string sourceLatticeText = ""; string sourceLatticeValue = ""; string destinationLatticeText = ""; string destinationLatticeValue = ""; string gripModelText = ""; int gripModelValue = 0; string gripModelSetText = ""; int pickPosMode = 0; string pickPosValue = "0"; int gripModelSetValue = 0; string gripModelPosText = ""; int gripModelPosValue = 0; string gripPickLabwareValue = ""; string gripPickLabwareText = ""; string gripPlaceLabwareValue = ""; string gripPlaceLabwareText = ""; int placePosMode = 0; string placePosValue = "0"; int transportMode = 0; int transportCount = 0; int mark = 0; #endregion public GripTransportProperty() { InitializeComponent(); } bool isConsumableUpdate = false; /// /// 耗材变更后,更新节点 /// /// 耗材管理对象 public void ReceiveAndUpdate(ConsumableManagement consumableManagement) { isConsumableUpdate = true; // 抓取耗材 ObservableCollection dropdownNames = LabwareDB.GetLabware(2); cbGripPickObject.ItemsSource = dropdownNames; cbGripPickObject.SelectedValue = methodGripTransport.gripPickLabwareValue; // 放在耗材上 isConsumableUpdate = true; ObservableCollection pickDropdownNames = new ObservableCollection(dropdownNames); pickDropdownNames.Insert(0, new Labware() { labware_id = "-1", labware_name = "空板位" }); cbGripPlaceObject.ItemsSource = pickDropdownNames; cbGripPlaceObject.SelectedValue = methodGripTransport.gripPlaceLabwareValue; } public GripTransportProperty(MethodEx method) { InitializeComponent(); mark = 0; curArmSelectedIndex = 0; curSourceSelectedIndex = 0; curDestinationSelectedIndex = 0; List deviceArms = DataModule.getInstance().GetDeviceArm(); cbArm.ItemsSource = deviceArms; cbArm.SelectedIndex = 0; if (deviceArms.Count == 2) //只有一个臂的情况下默认选中该臂 curArmSelectedIndex = 1; else if(deviceArms.Count == 3) curArmSelectedIndex = 2; else if (deviceArms.Count == 4) curArmSelectedIndex = 3; else if (deviceArms.Count == 5) curArmSelectedIndex = 2; List gripTransportModels = gripTransportBll.GenerateGripTransportModel(Shared.SoftwareInformation.software_device_number); cbGripModel.ItemsSource = gripTransportModels; cbGripModelSet.ItemsSource = gripTransportModels; List gripTransportModelPoss = gripTransportBll.GetGripTransportModelPoss(); cbGripModelPos.ItemsSource = gripTransportModelPoss; // 抓取耗材 ObservableCollection dropdownNames = LabwareDB.GetLabware(2); cbGripPickObject.ItemsSource = dropdownNames; // 放在耗材上 ObservableCollection pickDropdownNames = new ObservableCollection(dropdownNames); pickDropdownNames.Insert(0, new Labware() { labware_id = "-1", labware_name = "空板位" }); cbGripPlaceObject.ItemsSource = pickDropdownNames; methodGripTransport = new MethodGripTransport(); methodGripTransport.name = method.method_name; methodGripTransport.label = method.method_name; methodGripTransport.transportMode = 0; methodGripTransport.status = (method.isEnabled == true ? "enable" : "disable"); methodGripTransport.strIndex = method.strIndex; this.method = method; if (method.tag != null) { methodGripTransport = (MethodGripTransport)method.tag; currmethodGripTransport = methodGripTransport; isrun = methodGripTransport.isrun; status = methodGripTransport.status; name = methodGripTransport.name; label = methodGripTransport.label; armText = methodGripTransport.armText; armValue = methodGripTransport.armValue; sourceLatticeText = methodGripTransport.srcPositionText; sourceLatticeValue = methodGripTransport.srcPositionValue; destinationLatticeText = methodGripTransport.desPositionText; destinationLatticeValue = methodGripTransport.desPositionValue; gripModelText = methodGripTransport.gripModelText; gripModelValue = methodGripTransport.gripModelValue; gripModelSetText = methodGripTransport.gripModelSetText; gripModelSetValue = methodGripTransport.gripModelSetValue; gripPickLabwareValue = methodGripTransport.gripPickLabwareValue; gripPickLabwareText = methodGripTransport.gripPickLabwareText; pickPosMode= methodGripTransport.pickPosMode; pickPosValue= methodGripTransport.pickPosValue; gripPlaceLabwareValue = methodGripTransport.gripPlaceLabwareValue; gripPlaceLabwareText = methodGripTransport.gripPlaceLabwareText; placePosMode= methodGripTransport.placePosMode; placePosValue = methodGripTransport.placePosValue; gripModelPosText = methodGripTransport.gripModelPosText; gripModelPosValue = methodGripTransport.gripModelPosValue; transportMode = methodGripTransport.transportMode; transportCount = methodGripTransport.transportCount; } this.DataContext = methodGripTransport; // 加载转运点位 LoadGripPosition(Shared.ChanelArmId); } 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; cbSourceLattice.SelectedValue = sourceLatticeValue; cbDestinationLattice.SelectedValue = destinationLatticeValue; cbGripModel.SelectedValue = gripModelValue; cbGripModelSet.SelectedValue = gripModelSetValue; cbGripModelPos.SelectedValue = gripModelPosValue; cbGripPickObject.SelectedValue = gripPickLabwareValue; cbGripPlaceObject.SelectedValue = gripPlaceLabwareValue; Labware pickLabware = LabwareDB.GetLabware(gripPickLabwareValue); Labware placeLabware = LabwareDB.GetLabware(gripPlaceLabwareValue); if (transportMode == 0) { rbAll.IsChecked = true; } else if (transportMode == 1) { rbExceptOne.IsChecked = true; } else if (transportMode == 2) { rbCount.IsChecked = true; tbxlevel.Text = transportCount.ToString(); } if(pickPosMode==0) { radioBtnBoard.IsChecked= true; } else if(pickPosMode==1)//行 { radioBtnRow.IsChecked= true; string resultWells = ""; for(int q=1;q<= pickLabware.number_column;q++) { resultWells += ComUtility.GetRowName(pickPosValue)+ q.ToString()+ ","; } resultWells = resultWells.Substring(0, resultWells.Length - 1); PickwellPlate.Selection = resultWells; } else if(pickPosMode==2)//列 { radioBtnColumn.IsChecked= true; string resultWells = ""; for (int q = 0; q < pickLabware.number_row; q++) { resultWells += ComUtility.GetRowChar(q) + pickPosValue.ToString() + ","; } resultWells = resultWells.Substring(0, resultWells.Length - 1); PickwellPlate.Selection = resultWells; } else if(pickPosMode==3)//孔 { radioBtnWell.IsChecked= true; PickwellPlate.Selection = pickPosValue; } if (placePosMode == 0) { radioBtnPlaceBoard.IsChecked = true; } else if (placePosMode == 1)//行 { radioBtnPlaceRow.IsChecked = true; string resultWells = ""; if (placeLabware != null) { for (int q = 1; q <=placeLabware.number_column; q++) { resultWells += ComUtility.GetRowName(placePosValue) + q.ToString() + ","; } resultWells = resultWells.Substring(0, resultWells.Length - 1); } PlacewellPlate.Selection = resultWells; } else if (placePosMode == 2)//列 { radioBtnPlaceColumn.IsChecked = true; string resultWells = ""; if (placeLabware != null) { for (int q = 0; q < placeLabware.number_row; q++) { resultWells += ComUtility.GetRowChar(q) + placePosValue.ToString() + ","; } resultWells = resultWells.Substring(0, resultWells.Length - 1); } PlacewellPlate.Selection = resultWells; } else if (placePosMode == 3) { radioBtnPlaceWell.IsChecked = true; PlacewellPlate.Selection = placePosValue; } if (currmethodGripTransport != null) { methodGripTransport = currmethodGripTransport; } if (this.method != null) { this.method.method_Tipcontent = string.Format("从{0}到{1}", methodGripTransport.srcPositionText, methodGripTransport.desPositionText); } } else { Labware pickLabware = LabwareDB.GetLabware(gripPickLabwareValue); Labware placeLabware = LabwareDB.GetLabware(gripPlaceLabwareValue); cbArm.SelectedIndex = curArmSelectedIndex; cbSourceLattice.SelectedIndex = curSourceSelectedIndex; cbDestinationLattice.SelectedIndex = curDestinationSelectedIndex; cbGripModel.SelectedIndex = curGripPositionSelectedIndex; cbGripModelSet.SelectedIndex = curGripPositionSelectedIndex; cbGripModelPos.SelectedIndex = curGripPositionSelectedIndex; cbGripPickObject.SelectedIndex = curGripPositionSelectedIndex; cbGripPlaceObject.SelectedIndex = 0; if (methodGripTransport.transportMode == 0) rbAll.IsChecked = true; else if (methodGripTransport.transportMode == 1) rbExceptOne.IsChecked = true; else if (methodGripTransport.transportMode == 2) rbCount.IsChecked = true; if(methodGripTransport.pickPosMode==0) { radioBtnBoard.IsChecked = true; }else if(methodGripTransport.pickPosMode==1) { radioBtnRow.IsChecked = true; string resultWells = ""; for (int q = 1; q <= pickLabware.number_column; q++) { resultWells += ComUtility.GetRowName(pickPosValue) + q.ToString() + ","; } resultWells = resultWells.Substring(0, resultWells.Length - 1); PickwellPlate.Selection = resultWells; } else if(methodGripTransport.pickPosMode==2) { radioBtnColumn.IsChecked = true; string resultWells = ""; for (int q = 0; q < pickLabware.number_row; q++) { resultWells += ComUtility.GetRowChar(q) + pickPosValue.ToString() + ","; } resultWells = resultWells.Substring(0, resultWells.Length - 1); PickwellPlate.Selection = resultWells; } else if(methodGripTransport.pickPosMode==3) { radioBtnWell.IsChecked = true; PickwellPlate.Selection = pickPosValue; } if (methodGripTransport.placePosMode == 0) { radioBtnPlaceBoard.IsChecked = true; } else if (methodGripTransport.placePosMode == 1) { radioBtnPlaceRow.IsChecked = true; string resultWells = ""; if (placeLabware != null) { for (int q = 1; q <= placeLabware.number_column; q++) { resultWells += ComUtility.GetRowName(placePosValue) + q.ToString() + ","; } resultWells = resultWells.Substring(0, resultWells.Length - 1); } PlacewellPlate.Selection = resultWells; } else if (methodGripTransport.placePosMode == 2) { radioBtnPlaceColumn.IsChecked = true; string resultWells = ""; if (placeLabware != null) { for (int q = 0; q < placeLabware.number_row; q++) { resultWells += ComUtility.GetRowChar(q) + placePosValue.ToString() + ","; } resultWells = resultWells.Substring(0, resultWells.Length - 1); } PlacewellPlate.Selection = resultWells; } else if (methodGripTransport.placePosMode == 3) { radioBtnPlaceWell.IsChecked = true; PlacewellPlate.Selection = placePosValue; } if (currmethodGripTransport != null) { methodGripTransport = currmethodGripTransport; } if (this.method != null) { this.method.method_Tipcontent = string.Format("从{0}到{1}", methodGripTransport.srcPositionText, methodGripTransport.desPositionText); } } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (cbArm.SelectedIndex < 0) { return; } curArmSelectedIndex = cbArm.SelectedIndex; DeviceArm arm = (DeviceArm)cbArm.SelectedItem; if (methodGripTransport != null) { methodGripTransport.armText = arm.device_arm_name; methodGripTransport.armValue = arm.device_arm_id.ToString(); } } public void SetTableName(string name, Labware labware) { //TextBox tb = Utilities.FindVisualChild(cbSourceLattice); //if (tb.IsFocused) //{ // Lattice l = lattices.Find(s => s.lattice_num == name); // cbSourceLattice.SelectedItem = l; //} //else //{ // TextBox tb1 = Utilities.FindVisualChild(cbDestinationLattice); // if (tb1.IsFocused) // { // Lattice l = lattices.Find(s => s.lattice_num == name); // cbDestinationLattice.SelectedItem = l; // } //} } private void cbSourceLattice_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (cbSourceLattice.SelectedIndex < 0 || mark == 0) return; curSourceSelectedIndex = cbSourceLattice.SelectedIndex; if (string.IsNullOrEmpty(methodGripTransport.armValue)) { new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog(); } if (cbSourceLattice.SelectedIndex >= 0) { GripTransportPosition gripPosition = cbSourceLattice.SelectedItem as GripTransportPosition; if (methodGripTransport != null) { methodGripTransport.srcPositionText = gripPosition.position_name; methodGripTransport.srcPositionValue = gripPosition.position_id; methodGripTransport.srcPositionType = gripPosition.position_type; } if (this.method != null) { this.method.method_Tipcontent = string.Format("从{0}到{1}", methodGripTransport.srcPositionText, methodGripTransport.desPositionText); } } } private void cbDestinationLattice_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (cbDestinationLattice.SelectedIndex < 0 || mark == 0) return; curDestinationSelectedIndex = cbDestinationLattice.SelectedIndex; if (string.IsNullOrEmpty(methodGripTransport.armValue)) { new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog(); } if (cbDestinationLattice.SelectedIndex >= 0) { GripTransportPosition gripPosition = cbDestinationLattice.SelectedItem as GripTransportPosition; if (methodGripTransport != null) { methodGripTransport.desPositionText = gripPosition.position_name; methodGripTransport.desPositionValue = gripPosition.position_id; methodGripTransport.desPositionType = gripPosition.position_type; } if (this.method != null) { this.method.method_Tipcontent = string.Format("从{0}到{1}", methodGripTransport.srcPositionText, methodGripTransport.desPositionText); } } } private void rbAll_Checked(object sender, RoutedEventArgs e) { if (rbAll.IsChecked == true) { if (methodGripTransport != null) { methodGripTransport.transportMode = (int)GripTransportModeEnum.TransportAll; } } } private void rbExceptOne_Checked(object sender, RoutedEventArgs e) { if (rbExceptOne.IsChecked == true) { if (methodGripTransport != null) { methodGripTransport.transportMode = (int)GripTransportModeEnum.TransportExceptOne; } } } private void rbCount_Checked(object sender, RoutedEventArgs e) { if (rbCount.IsChecked == true) { if (methodGripTransport != null) { methodGripTransport.transportMode = (int)GripTransportModeEnum.TransportCount; } } } private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e) { try { if (methodGripTransport != null) { methodGripTransport.name = tbxCommandName.Text; } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void cbGripModel_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { GripTransportModel gripTransportModel = cbGripModel.SelectedItem as GripTransportModel; if (methodGripTransport != null) { if (string.IsNullOrEmpty(methodGripTransport.armValue)) { new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog(); } methodGripTransport.gripModelText = gripTransportModel.model_name; methodGripTransport.gripModelValue = Convert.ToInt32(gripTransportModel.model_id); } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void tbxlevel_TextChanged(object sender, TextChangedEventArgs e) { try { if (methodGripTransport != null) { methodGripTransport.transportCount = Convert.ToInt32(tbxlevel.Text); } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void cbGripModelSet_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { GripTransportModel gripTransportModel = cbGripModelSet.SelectedItem as GripTransportModel; if (methodGripTransport != null) { if (string.IsNullOrEmpty(methodGripTransport.armValue)) { new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog(); } methodGripTransport.gripModelSetText = gripTransportModel.model_name; methodGripTransport.gripModelSetValue = Convert.ToInt32(gripTransportModel.model_id); } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void cbGripModelPos_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { GripTransportModel gripTransportModel = cbGripModelPos.SelectedItem as GripTransportModel; if (methodGripTransport != null) { methodGripTransport.gripModelPosText = gripTransportModel.model_name; methodGripTransport.gripModelPosValue = Convert.ToInt32(gripTransportModel.model_id); } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } /// /// 抓取耗材类型 /// /// /// private void cbGripPickObject_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (isConsumableUpdate) { isConsumableUpdate = false; return; } Labware gripTransportModel = cbGripPickObject.SelectedItem as Labware; if (methodGripTransport != null) { if (string.IsNullOrEmpty(methodGripTransport.armValue)) { new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog(); } methodGripTransport.gripPickLabwareText = gripTransportModel.labware_name; methodGripTransport.gripPickLabwareValue = gripTransportModel.labware_id; PickwellPlate.Rows = gripTransportModel.number_row; PickwellPlate.Columns = gripTransportModel.number_column; PickwellPlate.labwareWellInfoList = gripTransportModel.labwareWellInfoList; PickwellPlate.LabwareRealWidth = gripTransportModel.labware_length; PickwellPlate.LabwareRealLength = gripTransportModel.labware_width; PickwellPlate.DataContext = gripTransportModel; PickwellPlate.Selection = ""; } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } #region 加载转运点位 /// /// 加载转运点位 /// /// private void LoadGripPosition(int armId) { List gripPositionList = new List(); // 获取台面点位 List lattices = aspirateBll.ProviderLatticeList(Shared.SoftwareInformation.software_device_number, armId); // 获取台面以外点位 List positons = PositionDB.GetList(Shared.SoftwareInformation.software_information_id); foreach (var lattice in lattices) { if (!lattice.lattice_num.Equals("请选择")) { GripTransportPosition gripPosition = new GripTransportPosition(); gripPosition.position_id = lattice.lattice_id; gripPosition.position_name = lattice.lattice_num; gripPosition.position_type = EnumManagement.GetEnumValue(PositonTypeEnum.Desktop); gripPositionList.Add(gripPosition); } } foreach (var positon in positons) { GripTransportPosition gripPosition = new GripTransportPosition(); gripPosition.position_id = positon.id; gripPosition.position_name = positon.name; gripPosition.position_type = positon.type; gripPositionList.Add(gripPosition); } cbSourceLattice.ItemsSource = gripPositionList; cbDestinationLattice.ItemsSource = gripPositionList; cbSourceLattice.SelectedIndex = 0; cbDestinationLattice.SelectedIndex = 0; } #endregion private void cbGripPlaceObject_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if(isConsumableUpdate) { isConsumableUpdate = false; return; } Labware gripTransportModel = cbGripPlaceObject.SelectedItem as Labware; if (methodGripTransport != null) { if (string.IsNullOrEmpty(methodGripTransport.armValue)) { new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog(); } methodGripTransport.gripPlaceLabwareText = gripTransportModel.labware_name; methodGripTransport.gripPlaceLabwareValue = gripTransportModel.labware_id; PlacewellPlate.Rows = gripTransportModel.number_row; PlacewellPlate.Columns = gripTransportModel.number_column; PlacewellPlate.labwareWellInfoList = gripTransportModel.labwareWellInfoList; PlacewellPlate.LabwareRealWidth = gripTransportModel.labware_length; PlacewellPlate.LabwareRealLength = gripTransportModel.labware_width; PlacewellPlate.DataContext = gripTransportModel; PlacewellPlate.Selection = ""; } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void PickwellPlate_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { //获取当前已选中的孔 string wellsSelected = PickwellPlate.Selection; if (!string.IsNullOrEmpty(wellsSelected)) { string[] wellArray = wellsSelected.Split(','); if (radioBtnRow.IsChecked==true) { string rowName = wellArray[wellArray.Length - 1].Substring(0, 1); int colTotal = PickwellPlate.Columns; string resultWells = ""; for (int i = 1; i <= colTotal; i++) { resultWells += rowName + i.ToString() + ","; } if (!string.IsNullOrEmpty(resultWells)) { resultWells = resultWells.Substring(0, (resultWells.Length) - 1); } PickwellPlate.Selection = resultWells; if (methodGripTransport != null) { methodGripTransport.pickPosValue = ComUtility.GetRowIndexByRowChar(rowName); } } else if (radioBtnColumn.IsChecked == true) { string colName = wellArray[wellArray.Length - 1].Substring(1); int rowTotal = PickwellPlate.Rows; string resultWells = ""; for (int i = 0; i <= rowTotal; i++) { resultWells += ComUtility.GetRowChar(i) + colName + ","; } if (!string.IsNullOrEmpty(resultWells)) { resultWells = resultWells.Substring(0, (resultWells.Length) - 1); } PickwellPlate.Selection = resultWells; if (methodGripTransport != null) { methodGripTransport.pickPosValue = wellArray[wellArray.Length - 1].Substring(1); } } else if (radioBtnWell.IsChecked == true) { string resultWells = ""; resultWells = wellArray[wellArray.Length - 1]; PickwellPlate.Selection = resultWells; if (methodGripTransport != null) { methodGripTransport.pickPosValue = resultWells; } } } } #region 抓整板选定 private void radioBtnBoard_Checked(object sender, RoutedEventArgs e) { if(radioBtnBoard.IsChecked == true) { gdPickSet.RowDefinitions[1].Height = new GridLength(0); if (methodGripTransport != null) { methodGripTransport.pickPosMode = 0; } } } #endregion #region 按行抓选定 private void radioBtnRow_Checked(object sender, RoutedEventArgs e) { if (radioBtnRow.IsChecked == true) { gdPickSet.RowDefinitions[1].Height = new GridLength(210); if (methodGripTransport != null) { methodGripTransport.pickPosMode = 1; PickwellPlate.Selection = ""; } } } #endregion #region 按列抓选定 private void radioBtnColumn_Checked(object sender, RoutedEventArgs e) { if (radioBtnColumn.IsChecked == true) { gdPickSet.RowDefinitions[1].Height = new GridLength(210); if (methodGripTransport != null) { methodGripTransport.pickPosMode = 2; PickwellPlate.Selection = ""; } } } #endregion #region 按孔抓选定 private void radioBtnWell_Checked(object sender, RoutedEventArgs e) { if (radioBtnWell.IsChecked == true) { gdPickSet.RowDefinitions[1].Height = new GridLength(210); if (methodGripTransport != null) { methodGripTransport.pickPosMode = 3; PickwellPlate.Selection = ""; } } } #endregion private void PlacewellPlate_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { //获取当前已选中的孔 string wellsSelected = PlacewellPlate.Selection; if (!string.IsNullOrEmpty(wellsSelected)) { string[] wellArray = wellsSelected.Split(','); if (radioBtnPlaceRow.IsChecked == true) { string rowName = wellArray[wellArray.Length - 1].Substring(0, 1); int colTotal = PlacewellPlate.Columns; string resultWells = ""; for (int i = 1; i <= colTotal; i++) { resultWells += rowName + i.ToString() + ","; } if (!string.IsNullOrEmpty(resultWells)) { resultWells = resultWells.Substring(0, (resultWells.Length) - 1); } PlacewellPlate.Selection = resultWells; if (methodGripTransport != null) { methodGripTransport.placePosValue = ComUtility.GetRowIndexByRowChar(rowName); } } else if (radioBtnPlaceColumn.IsChecked == true) { string colName = wellArray[wellArray.Length - 1].Substring(1); int rowTotal = PlacewellPlate.Rows; string resultWells = ""; for (int i = 0; i <= rowTotal; i++) { resultWells += ComUtility.GetRowChar(i) + colName + ","; } if (!string.IsNullOrEmpty(resultWells)) { resultWells = resultWells.Substring(0, (resultWells.Length) - 1); } PlacewellPlate.Selection = resultWells; if (methodGripTransport != null) { methodGripTransport.placePosValue = wellArray[wellArray.Length - 1].Substring(1); } } else if (radioBtnPlaceWell.IsChecked == true) { string resultWells = ""; resultWells = wellArray[wellArray.Length - 1]; PlacewellPlate.Selection = resultWells; if (methodGripTransport != null) { methodGripTransport.placePosValue = resultWells; } } } } #region 放整板选定 private void radioBtnPlaceBoard_Checked(object sender, RoutedEventArgs e) { if (radioBtnPlaceBoard.IsChecked == true) { gdPlaceSet.RowDefinitions[1].Height = new GridLength(0); if (methodGripTransport != null) { methodGripTransport.placePosMode = 0; } } } #endregion #region 按行放选定 private void radioBtnPlaceRow_Checked(object sender, RoutedEventArgs e) { if (radioBtnPlaceRow.IsChecked == true) { gdPlaceSet.RowDefinitions[1].Height = new GridLength(210); if (methodGripTransport != null) { methodGripTransport.placePosMode = 1; PlacewellPlate.Selection = ""; } } } #endregion #region 按列放选定 private void radioBtnPlaceColumn_Checked(object sender, RoutedEventArgs e) { if (radioBtnPlaceColumn.IsChecked == true) { gdPlaceSet.RowDefinitions[1].Height = new GridLength(210); if (methodGripTransport != null) { methodGripTransport.placePosMode = 2; PlacewellPlate.Selection = ""; } } } #endregion #region 按孔抓选定 private void radioBtnPlaceWell_Checked(object sender, RoutedEventArgs e) { if (radioBtnPlaceWell.IsChecked == true) { gdPlaceSet.RowDefinitions[1].Height = new GridLength(210); if (methodGripTransport != null) { methodGripTransport.placePosMode = 3; PlacewellPlate.Selection = ""; } } } #endregion } }