using System; using System.Collections.Generic; 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.DataEx; using XHandler.Class; using XHandler.Controls; using XImagingXhandler.XDAL; using System.Collections.ObjectModel; namespace XHandler.View { /// /// SetPlateProperty.xaml 的交互逻辑 /// public partial class SetPlateProperty : UserControl { public event EventHandler closeEvent; public ControlLabware controlLabware { get; set; } public LabwareEx labwareEx { get; set; } public ObservableCollection plateWellDataList { get; set; } public SetPlateProperty(ControlLabware control, LabwareEx labware) { InitializeComponent(); controlLabware = control; labwareEx = labware; this.DataContext = labwareEx; ObservableCollection liquidTypeList = DataModule.getInstance().GetLiquidTypes(); cbLiquidType.ItemsSource = liquidTypeList; cbLiquidType.SelectedIndex = 0; plateWellDataList = labwareEx.plateWellDataList; datagrid.ItemsSource = plateWellDataList; } private void UserControl_Loaded(object sender, RoutedEventArgs e) { wellPlate.Rows = labwareEx.number_row; wellPlate.Columns = labwareEx.number_column; } /// /// 取消 /// /// /// private void btnCancel_Click(object sender, RoutedEventArgs e) { if (EventResponseController.Instance.CanExecute() == false) return; closeEvent?.Invoke(this, EventArgs.Empty); } /// /// 确定 /// /// /// private void btnOK_Click(object sender, RoutedEventArgs e) { controlLabware.Label = labwareEx.label = textboxLabel.Text.Trim(); controlLabware.ValidWells = labwareEx.validWells = wellPlate.Selection; closeEvent?.Invoke(this, EventArgs.Empty); } /// /// 设置 /// /// /// private void btnSet_Click(object sender, RoutedEventArgs e) { if (cbLiquidType.SelectedIndex <= 0) { MessageBox.Show(Properties.Resources.strPlsSelectLiquidType, "Tips"); return; } if (string.IsNullOrEmpty(textboxLiquidVolume.Text.Trim())) { MessageBox.Show(Properties.Resources.stringVolumeCannotEmpty, "Tips"); return; } int vol = 0; if (!int.TryParse(textboxLiquidVolume.Text.Trim(), out vol)) { MessageBox.Show(Properties.Resources.strPlsCorrectVolume, "Tips"); return; } LiquidType liquidType = cbLiquidType.SelectedItem as LiquidType; PlateWellsData data = new PlateWellsData(); data.nIndex = plateWellDataList.Count + 1; data.liquidTypeID = liquidType.liquid_type_id; data.liquidTypeName = liquidType.liquid_type_name; data.nVolume = vol; data.wells = wellPlate.Selection; plateWellDataList.Add(data); } private void btnReset_Click(object sender, RoutedEventArgs e) { plateWellDataList.Clear(); //wellPlate.ClearGroup(); } } }