| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | using DevExpress.Xpo;using DevExpress.XtraEditors;using Ips.Library.Basic;using Ips.Library.Entity;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 SigSelectForm : DevExpress.XtraEditors.XtraForm    {        public SigSelectForm()        {            InitializeComponent();        }        public SigSelectForm(SignalCategory? category, SignalType? sigType) : this()        {            _cateory = category;            _sigType = sigType;        }        Session _session;        SignalCategory? _cateory;        SignalType? _sigType;        List<Signal> _signalList;        public List<Signal> SelectSigList { get; private set; } = new List<Signal>();        private void SigSelectForm_Load(object sender, EventArgs e)        {            Realod();        }        private void Realod()        {            _session = new Session();            _signalList = _session.Query<Signal>()                .WhereIf(_cateory.HasValue, m => m.SigCategory == _cateory)                .WhereIf(_sigType.HasValue, m => m.SigType == _sigType)                .OrderBy(m => m.SigCategory)                .ThenBy(m => m.SigFreq)                .ThenBy(m => m.BandWidth)                .ToList();            bsSigList.DataSource = _signalList;        }        private void btnOk_Click(object sender, EventArgs e)        {            SelectSigList.Clear();            var rowHandles = gvSigList.GetSelectedRows();            foreach (var rowHandle in rowHandles)            {                var sig = gvSigList.GetRow(rowHandle) as Signal;                if (sig == null) continue;                SelectSigList.Add(sig);            }            this.DialogResult = DialogResult.OK;            Close();        }        private void gvSigList_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)        {            if (e.Column == colAdjaSatIds && e.DisplayText.IsNullOrWhitespace())                e.DisplayText = "自动匹配";            else 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)";                }            }        }    }}
 |