|
public class ChartBehaviorExt : ChartBehavior
{
public ChartExt chart { get; set; }
public ChartBehaviorExt()
{
}
protected override void OnTouchDown(float pointX, float pointY)
{
if (chart != null)
{
foreach (var data in chart.Series)
{
var segementCount = (data.ItemsSource as ObservableCollection<Model>).Count;
var seriesBounds = data.GetDataPointIndex(pointX, pointY);
if (!(seriesBounds < segementCount && seriesBounds > 0))
{
chart.RaiseClicked(new EventArgs());
}
}
}
}
}
public class ChartExt : SfChart
{
public event EventHandler<EventArgs> AreaClicked;
internal void RaiseClicked(EventArgs args)
{
this.AreaClicked?.Invoke(this, EventArgs.Empty);
}
} |
|
<local:ChartExt x:Name="chart1" HorizontalOptions="FillAndExpand" AreaClicked="chart1_AreaClicked" VerticalOptions="FillAndExpand">
. . . . .
<chart:SfChart.ChartBehaviors>
<local:ChartBehaviorExt chart="{x:Reference chart1}" ></local:ChartBehaviorExt>
</chart:SfChart.ChartBehaviors>
</local:ChartExt> |