| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | using DevExpress.Xpo;using DevExpress.Xpo.DB;using DevExpress.XtraEditors;using Ips.Library.DxpLib;using Ips.Sps.Sigs;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.Sigs{    public partial class SigListForm : DevExpress.XtraEditors.XtraForm    {        public SigListForm()        {            InitializeComponent();        }        public Session Session { get; private set; }        XPCollection<Signal> _signalList;        private void SigListForm_Load(object sender, EventArgs e)        {            Reload();            gvSigList.BestFitColumns();        }        private void Reload()        {            Session = new Session();            _signalList = new XPCollection<Signal>(Session, null, new SortProperty[]{                new SortProperty(nameof(Signal.SigCategory), SortingDirection.Ascending),                new SortProperty(nameof(Signal.SigFreq), SortingDirection.Ascending),                new SortProperty(nameof(Signal.BandWidth), SortingDirection.Ascending)            });            bsSigList.DataSource = _signalList;        }        private void gvSigList_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 SigEditForm(id);            form.FormClosed += EditFormClosed;            try            {                form.ShowDialog();            }            finally            {                form.Dispose();            }        }        private void EditFormClosed(object sender, FormClosedEventArgs e)        {            var form = sender as SigEditForm;            form.FormClosed -= EditFormClosed;            if (form.Id.HasValue)            {                Reload();                gvSigList.FocusedRowHandle = gvSigList.LocateByValue(nameof(Signal.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)        {            if (gvSigList.FocusedRowHandle < 0) return;            int id = (int)gvSigList.GetFocusedRowCellValue(colOid);            ShowEditForm(id);        }        private void btnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)        {            if (gvSigList.FocusedRowHandle < 0) return;            var handles = gvSigList.GetSelectedRows();            if (handles.Length == 0) return;            if (MsgHelper.ShowConfirm("确定删除选中的记录吗?"))            {                var modelList = handles.Select(m => gvSigList.GetRow(m) as Signal).ToList();                Session.Delete(modelList);                Reload();            }        }        private void gvSigList_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)        {            if (e.Column == colSigFreq)            {                var signal = _signalList[e.ListSourceRowIndex];                if (signal.SigCategory == Library.Entity.SignalCategory.SctSig)                {                    e.DisplayText = $"[{signal.FreqStart}-{signal.FreqEnd}]-({signal.FreqStep}kHz)";                }            }        }    }}
 |