| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using DevExpress.Xpo;
- using DevExpress.XtraEditors;
- using Ips.Sps.Sats;
- using System;
- using System.Collections;
- 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 AdjaSatsEditCtrl : DevExpress.XtraEditors.XtraUserControl
- {
- public AdjaSatsEditCtrl()
- {
- InitializeComponent();
- }
- public event EventHandler AdjaSatsChanged;
- private XPBaseCollection _adjaSatList;
- Type adjaSatType;
- public string AdjaSatText => satComboBoxEdit.Text;
- private void AdjaSatsEditCtrl_Load(object sender, EventArgs e)
- {
- }
- public void SetSatList(IList<Sat> satList, string displayMember = "")
- {
- if (!string.IsNullOrWhiteSpace(displayMember))
- {
- satComboBoxEdit.Properties.DisplayMember = displayMember;
- }
- bsAdjaSatList.DataSource = satList;
- }
- public void SetAdjaSatList<T>(XPCollection<T> adjaSatList) where T : AdjaSatBasic
- {
- _adjaSatList = adjaSatList;
- adjaSatType = typeof(T);
- satComboBoxEdit.EditValue = adjaSatList?.Select(m => m.SatId)?.ToList();
- satComboBoxEdit.RefreshEditValue();
- }
- private void satComboBoxEdit_EditValueChanged(object sender, EventArgs e)
- {
- if (_adjaSatList == null) return;
- var satIds = ((IList)satComboBoxEdit.EditValue).Cast<int>();
- var adjaSatList = _adjaSatList.Cast<AdjaSatBasic>();
- foreach (var satid in satIds)
- {
- if (!adjaSatList.Any(m => m.SatId == satid))
- {
- var obj = Activator.CreateInstance(adjaSatType, _adjaSatList.Session) as AdjaSatBasic;
- obj.SatId = satid;
- _adjaSatList.BaseAdd(obj);
- }
- }
- var removeList = adjaSatList.Where(m => !satIds.Contains(m.SatId)).ToList();
- removeList.ForEach(m => _adjaSatList.BaseRemove(m));
- AdjaSatsChanged?.Invoke(this, EventArgs.Empty);
- }
- }
- }
|