|
public interface IChartDependencyService
{
object DataPoint(ChartSeries series, int index);
}
async void OnBalanceSelected(object sender, ChartSelectionChangingEventArgs e)
{
e.Cancel = true;
object datapoint = DependencyService.Get<IChartDependencyService>().DataPoint(Chart.Series[0], e.SelectedDataPointIndex);
await Navigation.PushAsync(new PortfolioDetail(datapoint), true);
}
|
|
class AndroidDependencyService : IChartDependencyService
{
public object DataPoint(ChartSeries series, int index)
{
var nativeSeries = (Native.DoughnutSeries)SfChartRenderer.GetNativeObject(typeof(ChartSeries), series);
var segment = nativeSeries.Segments[index];
PropertyInfo prop = typeof(Native.PieSegment).GetProperty("DataPoint", BindingFlags.NonPublic | BindingFlags.Instance);
object datapoint = prop.GetValue(segment, null);
return datapoint;
}
} |
|
public class iOSDependencyService : IChartDependencyService
{
public object DataPoint(ChartSeries series, int index)
{
var nativeSeries = (Native.SFDoughnutSeries)SfChartRenderer.GetNativeObject(typeof(ChartSeries), series);
var segment = nativeSeries.Segments[index];
PropertyInfo prop = typeof(Native.SFPieSegment).GetProperty("DataPoint", BindingFlags.NonPublic | BindingFlags.Instance);
object datapoint = prop.GetValue(segment, null);
return datapoint;
}
} |
|
await Navigation.PushAsync(new PortfolioDetail(datapoint), true); |
|
public PortfolioDetail(object model)
{
if (model is List<object>)
{
var viewmodel = model as ObservableCollection<BalanceUI>;
}
else
{
var viewmodel = model as BalanceUI;
}
} |