Ejemplo n.º 1
0
        public static void SetChartOptions(FinancialChart chart)
        {
            FinancialChartType finType = chart.ChartType;

            if (finType == FinancialChartType.Kagi || finType == FinancialChartType.Renko || finType == FinancialChartType.PointAndFigure)
            {
                string frmName = typeof(frmBase).Namespace + ".frm" + finType.ToString();
                using (frmBase frm = Assembly.GetExecutingAssembly().CreateInstance(frmName) as frmBase)
                {
                    FinancialChartOptions fco = chart.Options;
                    frm.SetTargetObject(fco);
                }
            }
        }
        private void SettableRadioButton_Checked(object sender, RoutedEventArgs e)
        {
            var btn = sender as CustomControls.SettableRadioButton;

            if (btn.Tag != null)
            {
                this.ChartType = (FinancialChartType)btn.Tag;
            }

            if (this.ChartType != FinancialChartType.Renko &&
                this.ChartType != FinancialChartType.Kagi &&
                this.ChartType != FinancialChartType.PointAndFigure)
            {
                Command.CloseDropdownCommand cmd = new Command.CloseDropdownCommand();
                cmd.Execute(this);
            }
        }
        private void InitAndBindingPointAndFigureData(FinancialChartType type)
        {
            IEnumerable <Data.SettingParam> settings;

            if (ViewModel.ViewModel.Instance.Settings.TryGetValue(Enum.GetName(typeof(FinancialChartType), type), out settings))
            {
                var reversalSetting = (from p in settings where p.Key == "ReversalAmount" select p).FirstOrDefault();
                if (reversalSetting != null)
                {
                    var value = System.Convert.ToDouble(reversalSetting.Value);
                    this.financialChart.Options.ReversalAmount = value > 1 ? value : 1;
                    reversalSetting.PropertyChanged           += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = System.Convert.ToDouble(reversalSetting.Value);
                            if (value > 0)
                            {
                                this.financialChart.Options.ReversalAmount = value;
                            }
                        }
                    };
                }
                var dataFieldsSetting = (from p in settings where p.Key == "DataFields" select p).FirstOrDefault();
                if (dataFieldsSetting != null)
                {
                    var value = (DataFields)dataFieldsSetting.Value;
                    this.financialChart.Options.DataFields = value;
                    dataFieldsSetting.PropertyChanged     += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = (DataFields)dataFieldsSetting.Value;
                            this.financialChart.Options.DataFields = value;
                        }
                    };
                }

                var scalingSetting = (from p in settings where p.Key == "Scaling" select p).FirstOrDefault();
                if (scalingSetting != null)
                {
                    var value = (C1.Chart.Finance.PointAndFigureScaling)scalingSetting.Value;
                    (this.financialChart.Options as C1.Xaml.Chart.Finance.PointAndFigureOptions).Scaling = value;
                    scalingSetting.PropertyChanged += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = (C1.Chart.Finance.PointAndFigureScaling)scalingSetting.Value;
                            (this.financialChart.Options as C1.Xaml.Chart.Finance.PointAndFigureOptions).Scaling = value;
                        }
                    };
                }
                var boxSizeSetting = (from p in settings where p.Key == "BoxSize" select p).FirstOrDefault();
                if (boxSizeSetting != null)
                {
                    var value = System.Convert.ToDouble(boxSizeSetting.Value);
                    this.financialChart.Options.BoxSize = value > 1 ? value : 1;
                    boxSizeSetting.PropertyChanged     += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = System.Convert.ToDouble(boxSizeSetting.Value);
                            if (value > 0)
                            {
                                this.financialChart.Options.BoxSize = value;
                            }
                        }
                    };
                }
                var periodSetting = (from p in settings where p.Key == "Period" select p).FirstOrDefault();
                if (periodSetting != null)
                {
                    var value = System.Convert.ToInt32(periodSetting.Value);
                    (this.financialChart.Options as C1.Xaml.Chart.Finance.PointAndFigureOptions).Period = value;
                    periodSetting.PropertyChanged += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = System.Convert.ToInt32(periodSetting.Value);
                            if (value > 0)
                            {
                                (this.financialChart.Options as C1.Xaml.Chart.Finance.PointAndFigureOptions).Period = value;
                            }
                        }
                    };
                }


                var squareGridSetting = (from p in settings where p.Key == "SquareGrid" select p).FirstOrDefault();
                if (squareGridSetting != null)
                {
                    var value = System.Convert.ToBoolean(squareGridSetting.Value);
                    (this.financialChart.Options as C1.Xaml.Chart.Finance.PointAndFigureOptions).SquareGrid = value;
                    squareGridSetting.PropertyChanged += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = System.Convert.ToBoolean(squareGridSetting.Value);
                            (this.financialChart.Options as C1.Xaml.Chart.Finance.PointAndFigureOptions).SquareGrid = value;
                        }
                    };
                }


                settingsCache.Add(type, settings);
            }
        }
        private void InitAndBindingData(FinancialChartType type)
        {
            IEnumerable <Data.SettingParam> settings;

            if (ViewModel.ViewModel.Instance.Settings.TryGetValue(Enum.GetName(typeof(FinancialChartType), type), out settings))
            {
                var reversalSetting = (from p in settings where p.Key == "ReversalAmount" select p).FirstOrDefault();
                if (reversalSetting != null)
                {
                    var value = System.Convert.ToDouble(reversalSetting.Value);
                    this.financialChart.Options.ReversalAmount = value > 1 ? value : 1;
                    this.financialChart.Options.BoxSize        = value > 1 ? value : 1;
                    reversalSetting.PropertyChanged           += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = System.Convert.ToDouble(reversalSetting.Value);
                            if (value > 0)
                            {
                                this.financialChart.Options.ReversalAmount = value;
                                this.financialChart.Options.BoxSize        = value;
                            }
                        }
                    };
                }
                var rangeModeSetting = (from p in settings where p.Key == "RangeMode" select p).FirstOrDefault();
                if (rangeModeSetting != null)
                {
                    var value = (RangeMode)rangeModeSetting.Value;
                    this.financialChart.Options.RangeMode = value;
                    rangeModeSetting.PropertyChanged     += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = (RangeMode)rangeModeSetting.Value;
                            this.financialChart.Options.RangeMode = value;

                            if (value == RangeMode.Percentage)
                            {
                                this.financialChart.Options.ReversalAmount = 0.05;

                                reversalSetting.Type    = typeof(double);
                                reversalSetting.Value   = 0.05;
                                reversalSetting.Minimum = 0;
                            }
                            else
                            {
                                this.financialChart.Options.ReversalAmount = 2;

                                reversalSetting.Type    = typeof(uint);
                                reversalSetting.Value   = 2;
                                reversalSetting.Minimum = 1;
                            }
                        }
                    };
                }
                var dataFieldsSetting = (from p in settings where p.Key == "DataFields" select p).FirstOrDefault();
                if (dataFieldsSetting != null)
                {
                    var value = (DataFields)dataFieldsSetting.Value;
                    this.financialChart.Options.DataFields = value;
                    dataFieldsSetting.PropertyChanged     += (o, e) =>
                    {
                        if (e.PropertyName == "Value" && financialChart.ChartType == type)
                        {
                            value = (DataFields)dataFieldsSetting.Value;
                            this.financialChart.Options.DataFields = value;
                        }
                    };
                }
                settingsCache.Add(type, settings);
            }
        }