0

階層データを使用して、ユーザーがアイテムを選択して対応するサブアイテムを表示できるようにしたいと考えています。

例 :

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

PieChart にはアイテム A とアイテム B が表示されます。Item1 をクリックすると、PieChart がリロードされ、SubItem1、SubItem2、および SubItem3 が表示されます。Item2 をクリックすると、PieChart がリロードされ、SubItem4 と SubItem5 が表示されます。

データソースをロードするにはどうすればよいですか? アイテム A (アイテム A、サブアイテム 1、サブアイテム 2、サブアイテム 3) 用にシリーズを作成し、アイテム B 用にシリーズを作成する必要がありますか?それとも、第 1 レベル (アイテム A、アイテム B) と各サブアイテム グループ用にシリーズを作成する必要がありますか?

現在表示されているシリーズを選択する方法はありますか?

どうもありがとうございました :)

4

1 に答える 1

0

いろいろな方法があると思いますが、ここではかなりきちんとした方法を紹介します。

チャートに提供するデータを変更するメソッドを使用して、「スマートな」データ ソースを作成できます。次に、チャートの操作 (チャートのデリゲート内) に応答してこれらのメソッドを呼び出し、チャートをリロードできます。データ ソースのインターフェイスは次のようになります。

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 円グラフのデモを見ると、2 つ目の円グラフがありますが、あなたがやろうとしていることと似たようなことをしています。

幸運を!

于 2013-05-31T14:58:54.823 に答える