Beispiel #1
0
        private void ChartMouseClick(object sender, MouseEventArgs e)
        {
            if (manager == null)
            {
                return;
            }
            if (isDrilling)
            {
                return;
            }
            else
            {
                isDrilling = true;
            }
            if (e.Button == MouseButtons.Right)
            {
                manager.DrillUp();
            }
            else
            {
                var hitInfo = flexChart1.HitTest(new Point(e.X, e.Y));
                if (hitInfo != null && hitInfo.Distance < 2)
                {
                    _currentValue = hitInfo.X;

                    var tooltip = flexChart1.ToolTip.Content;
                    flexChart1.ToolTip.Content = "Please wait while the details are being fetched";
                    flexChart1.Cursor          = Cursors.WaitCursor;

                    IEnumerable <object> data = null;
                    FetchDataAsync(manager.DrillDownLevel).ContinueWith(t =>
                    {
                        data = t.Result;
                        flexChart1.Enabled = true;
                        flexChart1.Invoke(new Action(() =>
                        {
                            flexChart1.ToolTip.Hide(flexChart1);
                            flexChart1.ToolTip.Content = tooltip;
                            flexChart1.Cursor          = Cursors.Default;
                            manager.DrillDown(data);
                        }));
                    });
                }
            }
        }