using DevExpress.Xpo; using DevExpress.Xpo.DB; using DevExpress.XtraBars.Docking2010; using DevExpress.XtraEditors; using Ips.Library.Basic; 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.Sats { public partial class SatListForm : DevExpress.XtraEditors.XtraForm { public SatListForm() { InitializeComponent(); } public Session Session { get; private set; } private void SatListForm_Load(object sender, EventArgs e) { Reload(); gvSatList.BestFitColumns(); } private void Reload() { Session = new Session(); bsSatList.DataSource = new XPCollection(Session, null, new SortProperty[]{ new SortProperty(nameof(Sat.Enable), SortingDirection.Descending), new SortProperty(nameof(Sat.SatNum), SortingDirection.Ascending) }); } private void gvSatList_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 SatEditForm(id); form.FormClosed += EditFormClosed; try { form.ShowDialog(); } finally { form.Dispose(); } } private void EditFormClosed(object sender, FormClosedEventArgs e) { var form = sender as SatEditForm; form.FormClosed -= EditFormClosed; if (form.Id.HasValue) { Reload(); gvSatList.FocusedRowHandle = gvSatList.LocateByValue(nameof(Sat.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)gvSatList.GetFocusedRowCellValue(colOid); ShowEditForm(id); } private void btnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var handles = gvSatList.GetSelectedRows(); if (handles.Length == 0) return; if (MsgHelper.ShowConfirm("确定删除选中的记录吗?")) { var modelList = handles.Select(m => gvSatList.GetRow(m) as Sat).ToList(); Session.Delete(modelList); Reload(); } } } }