using GeoSigma.SigmaDrawerElement; using SigmaDrawerElement; using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing.Design; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms.Design; using System.Xml.Serialization; using GeoSigmaDrawLib; //using static GeoSigmaDrawLib.GeoSigmaWellPoleXY; namespace GeoSigma.SigmaDrawerStyle { public class PropertyEditorInTrackCommonData : UITypeEditor { public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { return UITypeEditorEditStyle.Modal; } public override bool GetPaintValueSupported(ITypeDescriptorContext context) { return true; } public override void PaintValue(PaintValueEventArgs e) { if (e.Value is DataItems style) { var g = e.Graphics; var rect = e.Bounds; } } public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { // if (!(value is List dataItems)) if (!(value is CDataItemInTrackList dataItems)) { return value; } IWindowsFormsEditorService edSvc = provider?.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService; if (edSvc == null) { return value; } if (context.Instance is WellInTrackCommonData inTrack) { //TrackGetDataSourceID } else return value; using (var editorForm = new FrmInTrackCommonData(dataItems,inTrack.wellPoleContext.ParentObj) { StartPosition = FormStartPosition.CenterScreen }) { if (edSvc.ShowDialog(editorForm) == DialogResult.OK) { CDataItemInTrackList datas = new CDataItemInTrackList(); // List datas = new List(); foreach(var item in editorForm.m_ListValues) { DataItemInTrack tdata = new DataItemInTrack(); tdata.Value = item.Value; tdata.RefColId = item.RefColId; datas.Add(tdata); } return datas; } } return value; } } }