Xamarin.Forms のドキュメント
グループ化
コントロール > Sunburst > 機能 > グループ化

CollectionView クラスは、.NET と類似の ICollectionView インタフェースを介してグループ化をサポートしています。グループ化を有効にするには、1 つ以上の GroupDescription オブジェクトを CollectionView.GroupDescription プロパティに追加します。GroupDescription オブジェクトは柔軟であり、値またはグループ化関数に基づいてデータをグループ化できます。次のコードは GroupChanged イベントと SortChanged イベントを使用して、Sunburst チャートでグループ化操作を実行します。

次の図は、Sunburst チャートコントロールでグループ化を設定する方法を示します。

次のコード例は、C# と XAML を使用してこれらのプロパティを設定する方法を示します。この例では、「クイックスタート」セクションで作成したデータを使用します。

XAML のコード

XAML
コードのコピー
<Grid Margin="10">
        <c1:C1Sunburst x:Name="sunburst"  Binding="Value">
            <c1:C1Sunburst.DataLabel>
                <c1:PieDataLabel Position="Center" Content="{}{name}">
                    <c1:PieDataLabel.Style>
                        <c1:ChartStyle StrokeThickness="0"/>
                    </c1:PieDataLabel.Style>
                </c1:PieDataLabel>
            </c1:C1Sunburst.DataLabel>
        </c1:C1Sunburst>
</Grid>

C# のコード

C#
コードのコピー
public partial class MainPage : ContentPage
            {
        private static C1CollectionView<Item> cv;
        public MainPage()
        {
            InitializeComponent();
            Title = "SunBurst Chart";
            DataService model = new DataService();
            cv = DataService.CreateGroupCVData();

            cv.GroupChanged += View_GroupChanged;

            cv.SortChanged += Cv_SortChanged;
        }
        private void Cv_SortChanged(object sender, System.EventArgs e)
        {
            GroupDescription yearGroupDescription = new GroupDescription("Year");
            GroupDescription quarterGroupDescription = new GroupDescription("Quarter");
            GroupDescription monthGroupDescription = new GroupDescription("MonthName");
            GroupDescription[] groupDescriptions = new GroupDescription[] { yearGroupDescription, quarterGroupDescription, monthGroupDescription };
            cv.GroupAsync(groupDescriptions);
        }

        private void View_GroupChanged(object sender, System.EventArgs e)
        {
            this.sunburst.ItemsSource = cv;
            this.sunburst.Invalidate();
        }
    }