using DataRWDAL; using System; using System.Collections.Generic; using System.Collections.ObjectModel; 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 DataEntity; using DataEntity.Page; using XImagingXhandler.XDAL; using XCommon.Log; using XHandler.Class; namespace XHandler.View.TestList { /// /// ExperimentFolder.xaml 的交互逻辑 /// public partial class ExperimentFolder : UserControl { ObservableCollection experimentList = new ObservableCollection(); public MainWindow mainWindow = null; // 分页数据 private Pagination m_pagination = new Pagination(); public ExperimentFolder() { InitializeComponent(); } private void UserControl_Loaded(object sender, RoutedEventArgs e) { try { gdContent.RowDefinitions[0].Height = new GridLength(0); BindingTestListCollection(); } catch (Exception ex) { } } private void btnChangeFolder_Click(object sender, RoutedEventArgs e) { } private void btnSearch_Click(object sender, RoutedEventArgs e) { dgResult.ItemsSource = null; pagerToolsControl_paging.Current = PaginationDefaultParameter.Current; } #region 绑定数据日志集合到界面 private void BindingTestListCollection() { DataBinding(m_pagination); } #endregion /// /// 分页绑定 /// /// private void DataBinding(Pagination pagination) { experimentList = GenerateTestListCollection(); var resultExperimentList = GetPagedData(experimentList, pagination.Current, pagination.PageSize); var result = new Tuple, int>(resultExperimentList, experimentList.Count()); if (result != null) { pagerToolsControl_paging.IsTrigger = false; pagerToolsControl_paging.DataCount = result.Item2; // 当前查到数量 pagerToolsControl_paging.Current = pagination.Current; pagerToolsControl_paging.IsTrigger = true; dgResult.ItemsSource = result.Item1; } } public ObservableCollection GenerateTestListCollection() { string strExperimentName = this.tbxFileName.Text; var resultExperimentList = ExperimentListDB.GetExperimentCollectionFromdb(strExperimentName); for(int i=0;i GetPagedData(IEnumerable source, int currentPageNumber, int pageSize) { if (source == null || !source.Any()) return Enumerable.Empty(); int startIndex = (currentPageNumber - 1) * pageSize; int endIndex = Math.Min(startIndex + pageSize, source.Count()); return source.Skip(startIndex).Take(endIndex - startIndex); } #endregion private void pagerToolsControl_paging_PageCntChanged(object sender, Page.C_EventArgsClass e) { m_pagination.Current = e.CurrentPageNo; DataBinding(m_pagination); } private void pagerToolsControl_paging_OnePageRowCntChanged(object sender, Page.C_EventArgsClass e) { m_pagination.Current = e.CurrentPageNo; m_pagination.PageSize = e.PagerNum; DataBinding(m_pagination); } private void DataGridCell_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e) { } private void btnRemark_Click(object sender, RoutedEventArgs e) { Button btn = (Button)sender; if (btn != null) { string index = (string)btn.Tag; Experiment experiment = ExperimentListDB.GetSingleExperimentFromdb(index); Window wnd = Application.Current.MainWindow; Grid grid = Utilities.FindVisualChild(wnd); ExperimentRemark saveDlg = new ExperimentRemark(); saveDlg.experimentId = index; saveDlg.experimentName = experiment.experimentfile; saveDlg.remark = experiment.remark; saveDlg.closeEvent += SubWnd_closeEvent; saveDlg.saveEvent += SaveDlg_saveEvent; grid.Children.Add(saveDlg); } } #region 编辑——保存委托事件 private void SaveDlg_saveEvent(object sender, EventArgs e) { ExperimentRemark saveDlg = (ExperimentRemark)sender; UpdateRemark(saveDlg.experimentId, saveDlg.experimentRemark); BindingTestListCollection(); Window wnd = Application.Current.MainWindow; Grid grid = Utilities.FindVisualChild(wnd); UIElement element = sender as UIElement; grid.Children.Remove(element); } #endregion public int UpdateRemark(string experimentId, string remark) { int result = 0; //判断是否存在同名的,如果不存在则添加,如果存在则更新 Experiment experiment = ExperimentListDB.GetSingleExperimentFromdb(experimentId); if (experiment.experimentid != "") { try { experiment.remark = remark; int iResult = ExperimentListDB.UpdateExperiment(experiment); if (iResult == 1) { result = iResult; } else { } } catch (Exception ex) { LoggerHelper.ErrorLog("修改实验时错误:" + ex.ToString()); } } return result; } private void SubWnd_closeEvent(object sender, EventArgs e) { Window wnd = Application.Current.MainWindow; Grid grid = Utilities.FindVisualChild(wnd); UIElement element = sender as UIElement; grid.Children.Remove(element); } private void btnEdit_Click(object sender, RoutedEventArgs e) { Button btn = (Button)sender; if (btn != null) { string index = (string)btn.Tag; //跳转到实验设计并加载选中的实验 if (mainWindow != null) { mainWindow.btnTestDesign.IsChecked = true; Experiment experiment = ExperimentListDB.GetSingleExperimentFromdb(index); mainWindow.tbCaption.Text = Properties.Resources.strXHandler + " - " + experiment.experimentfile; mainWindow.OpenAndLoadMethod(experiment.experimentxmlcontent); } } } private void btnDelete_Click(object sender, RoutedEventArgs e) { try { Button btn = (Button)sender; if (btn != null) { string index = (string)btn.Tag; Experiment experiment = ExperimentListDB.GetSingleExperimentFromdb(index); experimentList.Remove(experiment); experiment.status = 0; ExperimentListDB.UpdateExperiment(experiment); BindingTestListCollection(); } } catch (Exception ex) { } } } }