【问题标题】:Display hierarchical datas in ShinobiCharts在 Shinobi Charts 中显示分层数据
【发布时间】:2013-04-10 13:30:08
【问题描述】:

使用分层数据,我想让用户能够选择一个项目来查看其对应的子项目。

例子:

Item A
-> SubItem1
-> SubItem2
-> SubItem3
Item B
-> SubItem4
-> SubItem5

饼图显示项目 A 和项目 B。 如果单击 Item1,则重新加载 PieChart 并显示 SubItem1、SubItem2 和 SubItem3。 如果单击 Item2,PieChart 会重新加载并显示 SubItem4 和 SubItem5。

如何加载我的数据源?我应该为项目 A(项目 A、子项目 1、子项目 2、子项目 3)和项目 B 创建一个系列,还是应该为第一级(项目 A、项目 B)和每个子项目组创建一个?

有没有办法选择当前显示的系列?

非常感谢:)

【问题讨论】:

    标签: c# xamarin.ios shinobi


    【解决方案1】:

    我认为有多种方法可以做到这一点,但这是一种非常简洁的方法。

    您可以创建一个“智能”数据源,其方法可以更改它将提供给图表的数据。然后,您可以调用这些方法来响应图表交互(在图表的委托内)并重新加载图表。您的数据源界面可能如下所示:

    public interface SmartDataSource
    {
       void SetToShowDataForItem(Item level);
    }
    

    您可以实现OnToggledSelection 方法,当用户点击切片时,您可以获得与他们点击的切片对应的项目,调用“SetToShowDataForItem”,然后像这样重新加载图表:

    protected override void OnToggledSelection (ShinobiChart chart, SChartRadialDataPoint dataPoint, SChartRadialSeries series, PointF pixelPoint)
    {
        Item item = myItems[dataPoint.index];
        SmartDataSource sDataSource = chart.DataSource as SmartDataSource;
    
        if (sDataSource != NULL) {
            sDataSource.SetToShowDataForItem(item); 
            chart.ReloadData();
            chart.RedrawChart();
        }
    }
    

    与框架一起打包的演示也可能对您有所帮助。如果您查看原生 iOS 饼图演示,他们会做一些类似于您尝试做的事情,尽管他们有一个辅助饼图。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多