using DevExpress.Xpo; using DevExpress.Xpo.DB; using DevExpress.XtraEditors; using Ips.Library.DxpLib; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Ips.Sps.Adcs { public partial class AdcListForm : DevExpress.XtraEditors.XtraForm { public AdcListForm() { InitializeComponent(); } public Session Session { get; private set; } private void AdcListForm_Load(object sender, EventArgs e) { Reload(); gvAdcList.BestFitColumns(); gvChannelList.BestFitColumns(); } private void Reload() { Session = new Session(); var adCardList = new XPCollection(Session, null, new[] { new SortProperty(nameof(AdCard.Enable),SortingDirection.Descending) }); Session.PreFetch(adCardList, nameof(AdCard.Channels)); bsAdcList.DataSource = adCardList; } private void gvAdcList_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { if (e.Clicks == 2) { e.Handled = true; btnEdit.PerformClick(); } } private void ShowEditForm(int? id) { var form = new AdcEditForm(id); form.FormClosed += EditFormClosed; try { form.ShowDialog(); } finally { form.Dispose(); } } private void EditFormClosed(object sender, FormClosedEventArgs e) { var form = sender as AdcEditForm; form.FormClosed -= EditFormClosed; if (form.Id.HasValue) { Reload(); gvAdcList.FocusedRowHandle = gvAdcList.LocateByValue(nameof(AdCard.Oid), form.Id); } } private void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowEditForm(null); } private void btnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { int id = (int)gvAdcList.GetFocusedRowCellValue(colOid); ShowEditForm(id); } private void btnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var handles = gvAdcList.GetSelectedRows(); if (handles.Length == 0) return; if (MsgHelper.ShowConfirm("确定删除选中的记录吗?")) { var modelList = handles.Select(m => gvAdcList.GetRow(m) as AdCard).ToList(); Session.Delete(modelList); Reload(); } } } }