Shuxia Ning
2024-12-19 97e1e604737e70a9df2e83897d3bbf68292d0d72
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
namespace Yw.WinFrmUI.Phart
{
    public partial class UniversalChartExcelImportCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public UniversalChartExcelImportCtrl()
        {
            InitializeComponent();
            this.gridView1.SetDefaultEditView();
            this.gridView1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
 
            this.repImgCmbFeatType.Items.Add("三次拟合", Yw.Ahart.eFeatType.Cubic, -1);
            this.repImgCmbFeatType.Items.Add("不拟合", Yw.Ahart.eFeatType.Through2d, -1);
           
        }
 
         
        private Yw.Ahart.eFeatType _feat_type;
        private List<Yw.Geometry.Point2d> _def_pt_list = null;
 
        /// <summary>
        /// 绑定数据
        /// </summary> 
        public void SetBindingData(Yw.Ahart.eCurveType curve_type, List<Yw.Geometry.Point2d> def_pt_list)
        { 
            _def_pt_list = def_pt_list;
            _def_pt_list ??= new List<Geometry.Point2d>();
            _feat_type = Yw.Ahart.eFeatType.Cubic;
 
            var (axis_x_title, axis_y_title) = AxisTitleHelper.Get(curve_type);
            this.colX.Caption = axis_x_title;
            this.colY.Caption = axis_x_title;
 
            this.universalEditChart1.AxisXTitle = axis_x_title;
            this.universalEditChart1.AxisYTitle = axis_y_title;
 
            this.bindingSource1.DataSource = _def_pt_list;
            this.bindingSource1.ResetBindings(false);
             
        }
 
 
        //设置图表
        private void SetChart(Yw.Ahart.eFeatType feat_type, List<Yw.Geometry.Point2d> def_pt_list)
        {
            if (def_pt_list == null || def_pt_list.Count < 4)
            {
                this.universalEditChart1.Clear();
                return;
            }
            var fit_pt_list = def_pt_list.GetFitPointList(feat_type);
            this.universalEditChart1.SetBindingData(def_pt_list, fit_pt_list);
        }
         
 
        //值变换
        private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            SetChart(_feat_type, _def_pt_list);
        }
 
        //拟合
        private void barFeatType_EditValueChanged(object sender, EventArgs e)
        {
            _feat_type = (Yw.Ahart.eFeatType)this.barFeatType.EditValue;
            SetChart(_feat_type, _def_pt_list);
        }
 
        /// <summary>
        /// 获取数据
        /// </summary> 
        public bool Get(out Yw.Ahart.eFeatType feat_type, out List<Yw.Geometry.Point2d> pt_list)
        {
            feat_type = _feat_type;
            pt_list = _def_pt_list;
            if (_def_pt_list == null || !_def_pt_list.Any())
                return false;
            return true;
        }
 
 
     
    }
 
}