protected void OnChartClicked(ChartClickedEventArgs e_)
 {
   var h = ChartClicked;
   if (h != null) h(this, e_);
 }
    private async void handleChartClicked(object sender, ChartClickedEventArgs e_)
    {
      Logger.Info(string.Format("Row:{0}   Col:{1}   Type:{2}", e_.RowName, e_.ColumnName, e_.ChartType),
        typeof(MainContainer));

      if (m_lastClicked == null)
        return;

      switch (e_.ChartType)
      {
        case ChartType.Exposures:
          {
            var exp = await m_lastClicked.Row.Underlying.GetAllocatedExposure(m_cc);
            if (exp == null || !exp.HasData) return;
            var index = exp.FindColumnIndex(e_.ColumnName);
            DatedDataCollectionGen<double> d = null;
            if (index != -1)
            {
              d = new DatedDataCollectionGen<double>(exp.Data.Keys.ToArray(), exp.Data.GetColumnValues(index));
            }
            else
            {
              var nettedIndicies = exp.FindNettedColumnIndicies(e_.ColumnName);

              var arr = exp.Data.CombineColumnValues<double>(nettedIndicies, x => x.Sum());

              if(arr!=null) 
                d = new DatedDataCollectionGen<double>(exp.Data.Keys.ToArray(), arr);
            }

            if (d == null) return;

            getChart().DoCumulative = false;
            getChart().SetValues(
              values_: d,
              description_: string.Format("{0}.{1} exposure", m_lastClicked.Row.Underlying.RootName, e_.ColumnName));
            showChart();
          }
          break;
        case ChartType.PeriodToDate:
          {
            var exp = await m_lastClicked.Row.Underlying.GetHistoricAllocatedPnl(m_cc);
            if (exp == null || !exp.HasData) return;
            var index = exp.TimeSeries.FindColumnIndex(e_.ColumnName);
            DatedDataCollectionGen<double> d = null;
            if (index != -1)
            {
              d = new DatedDataCollectionGen<double>(exp.TimeSeries.Data.Keys.ToArray(), exp.TimeSeries.Data.GetColumnValues(index));
            }
            else
            {
              var nettedIndicies = exp.TimeSeries.FindNettedColumnIndicies(e_.ColumnName);

              var arr = exp.TimeSeries.Data.CombineColumnValues<double>(nettedIndicies, x => x.Sum());

              if(arr!=null)
                d = new DatedDataCollectionGen<double>(exp.TimeSeries.Data.Keys.ToArray(), arr);
            }

            if (d == null) return;
            getChart().DoCumulative = true;
            getChart().SetValues(
              values_: new DatedDataCollectionGen<double>(exp.TimeSeries.Data.Keys.ToArray(), exp.TimeSeries.Data.GetColumnValues(index)),
              description_: string.Format("{0}.{1} p&&l", m_lastClicked.Row.Underlying.RootName, e_.ColumnName));
            showChart();
          }
          break;
      }
    }